| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【数据结构之串和数组】熬夜暴肝,有亿点详细 -> 正文阅读 |
|
[数据结构与算法]【数据结构之串和数组】熬夜暴肝,有亿点详细 |
前言这三个数据结构,相对于之前的来说比较常见,几乎都与线性表有关,很类似。最近期末复习本来打算不写了,但是为了使这个专栏比较完整,所以想一想还是写一下吧!其中大量重点因为没时间作图阐述,于是在网上找了写的好的引用过来的,偷了个大懒,请见谅! 温馨提示:字体蓝色点击可以直接进入原文 串串是重要的非数值处理对象,它是以字符作为数据元素的线性表。也是受限制的线性表. 串的定义串( string)是由零个或多个字符组成的有限序列,又名叫字符串 下面是常用的串的概念:
串的比较 比较串相等时候先比较串的长度是否相等在比较串中对应字符是否相等。 下面是串的一些基本操作:
串的逻辑结构和线性表极为相似,区别仅在于串的数据对象限定为字符集。在基本操作上,串和线性表有很大差别。线性表的基本操作主要以单个元素作为操作对象,如查找、插入或删除某个元素等;而串的基本操作通常以子串作为操作对象,如查找、插入或删除一个子串等。 串的实现实现就从存储结构上面实现了,仍然从顺序存储与链式存储实现。 顺序串顺序串类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。即数组,还有一个整型变量用来存储字符串长度。
之前看到一篇顺序串操作总结很好的文章,大家可以看看 顺序串操作 链串链串结构包括两部分,一个用来存放单个字符,还有一个用来存放下一个字符的地址。
之前看到一篇链式串操作总结很好的文章,大家可以看看 链式串操作 串的模式匹配串的模式匹配算法,是一种用来判断两个串之间是否具有主串与子串关系的算法。模式匹配算法有两种:普通模式匹配算法(BF算法)和快速模式匹配算法(KMP算法)。下面我们分别看一下它们是怎么回事。 BF算法普通模式匹配算法,其实现过程没有任何技巧,就是简单粗暴地拿一个串同另一个串中的字符一一比对,得到最终结果。 看 详细BF算法明白BF算法 代码实现:
KMP算法快速模式匹配算法,比之前BF算法时间快很多,也比较难理解。 看 详细KMP算法明白KMP算法 代码实现:
求next(j)代码实现
数组数组是由n (n>=1)个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素受n个线性关系的约束,每个元素在n个线性关系中的序号称为该元素的下标,并称该数组为n维数组,从某种意义上讲它是一种逻辑结构。
数组从存储结构上讲有两种为:按行优先和按列优先。分别就是一行一行的存与一列一列的存。 二维数组我们也称之为矩阵,即:数组中的每一个元素为一个矩阵。如矩阵a: a[3][3]={{1,2,2}{5,5,9}{8,9,7}} 矩阵的压缩存储压缩存储是指多个值相同的元素只分配一个存储空间,对零元素不分配存储空间。 所以对于一般的矩阵我们是无法实现压缩存储的,我们今天看看特殊矩阵的压缩存储。
今天我们看看常见的特殊矩阵的压缩存储分别是:对称矩阵,三角矩阵和三对角矩阵。 对称矩阵
数组下标k的计算:
三角矩阵
数组下标k的计算(把常数存放在最后一个位置):
三对角矩阵
数组下标k的计算:
已知k求i与j
稀疏矩阵
三元组一般是(i,j,value) 缺点:稀疏矩阵压缩存储后失去了随机存储的特性 结语对于kmp算法还是蛮重要的,以后做算法题很容易遇到,大家好好理解,不要因为一时看不懂而直接放弃。 有问题请指教,多谢支持! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 15:25:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |