当前位置: 首页 > news >正文

东凤网站建设网页视频下载器安卓破解

东凤网站建设,网页视频下载器安卓破解,建e室内设计网最近有什么活动,怎么做刷会员的网站文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法1. 算法原理2. ADL语言3. 伪代码4. C语言实现5 时间复杂度 4.3 字符串 字符串(String)是由零个或多个字符(char)顺序排列组成的有限序列#xff0c;简称为串。例如 “good morning”就是… 文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法1. 算法原理2. ADL语言3. 伪代码4. C语言实现5 时间复杂度 4.3 字符串 字符串(String)是由零个或多个字符(char)顺序排列组成的有限序列简称为串。例如 “good morning”就是由12个字符构成的一个字符串。一般把字符串记作 S ′ ′ a 0 a 1 … a n − 1 ′ ′ Sa_{0} a_{1}…a_{n-1} S′′a0​a1​…an−1′′​ 其中S是串名引号中的字符序列是串值。字符个数是串的长度长度为0的串被称为空串因为它不包含任何字符。需要注意的是空格字符 并不是空串因为它包含一个字符——空格。   若把某个串称为主串则主串中任意个连续的字符组成的子序列被称为子串。子串在主串中第一次出现时其首字符在主串中的序号被称为该子串在主串中的位置。   关于字符串的基础知识亦可参考前文 【重拾C语言】六、批量数据组织三数组初值字符串、字符数组、字符串数组类型定义 typedef 【重拾C语言】七、指针三指针与字符串字符串与字符串数组指针与字符串的遍历、拷贝、比较反转字符串 4.3.1 字符串的定义与存储 字符串在许多非数值计算问题中扮演着重要的角色并在模式匹配、程序编译和数据处理等领域得到广泛应用。在高级程序设计语言中字符串通常被定义为以特殊字符’\0’称为空字符或字符串结束符结尾的字符序列。这个约定使得在处理字符串时可以方便地确定字符串的结束位置。关于字符串的存储方式主要有两种常见的方式 顺序存储字符串的字符按照顺序依次存储在连续的内存空间中。这种方式使得字符串的访问和操作效率较高可以通过索引直接访问任意位置的字符。在顺序存储方式中字符串的长度可以通过计算字符个数或者遇到’\0’结束符来确定。 链式存储字符串的字符通过链表的方式进行存储。每个节点包含一个字符和指向下一个节点的指针。链式存储方式可以动态地分配内存适用于长度可变的字符串。但是相比于顺序存储链式存储方式需要更多的内存空间并且访问字符需要遍历链表。 选择何种存储方式取决于具体的应用场景和需求。顺序存储适合于需要频繁访问和操作字符串的情况而链式存储适合于长度可变的字符串或者对内存空间要求较高的情况。具体C语言实现可参照前文   【数据结构】数组和字符串十一字符串的定义与存储顺序存储、链式存储及其C语言实现 4.3.2 字符串的基本操作 顺序存储【数据结构】数组和字符串十二顺序存储字符串的基本操作串长统计、查找、复制、插入、删除、串拼接 链式存储【数据结构】数组和字符串十三链式字符串的基本操作串长统计、查找、复制、插入、删除、串拼接 4.3.3 模式匹配算法 文本编辑器中常用的“查找”、“替换”和“全部替换”等基本的编辑操作就是最普通的模式匹配问题即在文本文件中查找串。它的查找过程可简单描述如下给定两个字符串变量 S 和 P其中目标串 S 有n个字符模式串P有m个字符m≤n . 从S的给定位置通常为S的第一个字符开始搜索模式串P如果找到返回模式串P在S中匹配成功的起始位置如果没找到即S中没有P则返回–1 .   字符串匹配可以采用多种算法包括朴素模式匹配算法、KMPKnuth-Morris-Pratt算法、Boyer-Moore算法等。这些算法的性能和效率各不相同具体选择取决于应用的需求和文本数据的规模。 1. 算法原理 从S的字符 S 0 S_{0} S0​开始将P长度为m中的字符依次与S中的字符进行比较 若 S 0 P 0 S 1 P 1 … S m − 1 P m − 1 S_{0}P_{0}S_{1}P_{1}…S_{m-1}P_{m-1} S0​P0​S1​P1​…Sm−1​Pm−1​则匹配成功返回与 P 0 P_{0} P0​相匹配的字符 S 0 S_{0} S0​在 S S S中的位置下标为0若某一步 S i ≠ P i S_{i}≠P_{i} Si​Pi​说明此次匹配不成功以下比较无需进行。 于是再从 S S S的字符 S 1 S_{1} S1​开始进行第二次匹配重复刚才的步骤 看是否有 S 1 P 0 S 2 P 1 … S m P m − 1 S_{1}P_{0}S_{2}P_{1}…S_{m}P_{m-1} S1​P0​S2​P1​…Sm​Pm−1​ 若匹配成功返回与P0相匹配的字符S1在S中的下标1.否则从S的字符S2开始进行第三次匹配’ ……若第 n − m 1 n-m1 n−m1次匹配即最后一次匹配仍得不到 S n − m P 0 S n − m 1 P 1 … S n − 1 P m − 1 S_{n-m}P_{0}S_{n-m1}P_{1}…S_{n-1}P_{m-1} Sn−m​P0​Sn−m1​P1​…Sn−1​Pm−1​,说明匹配失败返回 -1 .这种模式匹配算法被称为朴素的模式匹配算法 2. ADL语言 3. 伪代码 function naivePatternMatching(S, P):n length(S) # 目标串的长度m length(P) # 模式串的长度for i from 0 to n - m:j 0while j m and S[i j] P[j]:j j 1if j m: # 如果模式串完全匹配return i # 返回匹配位置return -1 # 未找到匹配# 示例用法 S ABABCABAB P ABAB result naivePatternMatching(S, P) if result ! -1:print(模式串在目标串中的位置:, result) else:print(未找到匹配)4. C语言实现 #include stdio.h #include string.hint naivePatternMatching(const char* S, const char* P) {int n strlen(S); // 目标串的长度int m strlen(P); // 模式串的长度for (int i 0; i n - m; i) {int j 0;while (j m S[i j] P[j]) {j;}if (j m) { // 如果模式串完全匹配return i; // 返回匹配位置}}return -1; // 未找到匹配 }int main() {const char* S QomolangmaH;const char* P lang; // const char* P gan;int result naivePatternMatching(S, P);if (result ! -1) {printf(模式串在目标串中的位置: %d\n, result);} else {printf(未找到匹配\n);}return 0; }5 时间复杂度 朴素模式匹配算法的优点是过程简单缺点是效率低。在最坏情况下该算法要匹配n-m1次每次匹配要做m次比较因此最坏情况下的比较次数是m×(n-m1)时间复杂性为O(m×(n-m1))通常情况下m的值远小于n的值于是最坏情况下的时间复杂性可粗略地记为O(n×m)。对于长文本和模式串可能会导致性能问题。因此有更高效的模式匹配算法如KMP和Boyer-Moore等用于更快速地找到匹配位置具体内容详见后文。
http://www.dnsts.com.cn/news/231052.html

相关文章:

  • 信誉好的模板网站建设建博会广州网站
  • 服务器建立网站建筑工程网人才网
  • 企业网站免费建设连云港网站建设的公司
  • 糖果果屋网站建设规划书wordpress 自动翻译
  • 报表网站建设263企业邮箱手机登录
  • 云指网站开发四川建设网站塔吊
  • 做美食网站有哪些互联网电商
  • 小说网站静态模板做网站主要学什么软件
  • 网站赚钱吗wordpress如何使用dplayer
  • 给企业做网站的公司西安河南高端网站
  • 宜宾移动网站建设运动品牌网站开发题目来源
  • 北京 网站制作宿松网站建设
  • 网站定制站延边app网站开发
  • 天津微信网站开发中国中小企业河南网
  • 企业网站模板 演示浙江微信网站建设
  • 贵州做网站的公司有哪些wordpress站长之家
  • 网站开发网站制作报价十堰秦楚网论坛十堰城事
  • 建设网站北京ui培训讲师
  • django做的购物网站杭州app建设
  • 北京网站域名快速备案我国档案网站建设研究论文
  • 佛山新网站建设教程什么是网络营销和技巧
  • 宁波自助建站网站wordpress oss 防盗链
  • 广西智能网站建设制作顺德网站建设渠道
  • 流量查询网站python安卓app开发
  • 网站建设选亿企网络wordpress主题熊掌号
  • 哈尔滨建站人wordpress cms下载
  • 培训网站建设方案模板网页设计字体颜色代码
  • 返利网站开发计划书做微商哪个网站好
  • 如果网站没有做icp备案会被处罚广东莞业工程设计有限公司
  • 网站seo置顶 乐云践新专家安庆经济开发区人才网