数据结构
文章平均质量分 86
大鱼BIGFISH
在进步中超越
展开
-
KMP算法(C语言)
本着对KMP算法的好奇,特地进行学习一下。文章目录一、简介二、构建next数组三、KMP算法的实现一、简介KMP算法是由D.E.Knuth、J.H.Morris和V.R.Pratt三位科学家发表的一个模式匹配的算法,这种算法相较于BF(暴力)匹配算法可以大大减少其回溯计算的次数,也就是减少不必要的回溯发生。该算法的核心是要构建一个引导整个匹配过程的next数组,我们可以把这个next数组看做是KMP算法中的回溯控制中心,它会控制匹配过程字符串T的回溯位置。具体的构建过程可以参看《大话数据结构》原创 2021-04-01 15:59:34 · 432 阅读 · 0 评论 -
改进排序算法(C语言实现)
继续开始对排序算法进行整理。一、希尔排序希尔排序是D.L.Shell于1959年所提出的一种改进插入排序算法,在这之前排序算法的时间复杂度基本都是O(n2)O(n^2)O(n2),希尔排序是突破这个时间复杂度的第一批算法之一。该算法的核心工作就是要保证数据“基本有序而且记录少”,这是由于插入排序算法对记录较少的数据具有更好的处理效果,其实现过程是采用了“跳跃分割”的策略,这其实有点类似于一些图像的滤波处理方法,先使用较大的步长对数据进行“粗排序”,之后再减少步长对数据进行“精排序”,最终实现将数据按原创 2021-01-18 21:50:33 · 854 阅读 · 0 评论 -
简单排序(C语言实现)
趁着空闲继续开始学习之旅。原创 2021-01-18 11:55:27 · 1388 阅读 · 0 评论 -
C++二叉树的创建与遍历
最近学习了二叉树的一点知识,感觉数据结构真的很难啊,所以学习过程中的笔记还是要记录一下。文章目录一、二叉树二、实现代码三、运行效果四、小结一、二叉树在我们使用的数据结构中,一对一的线性结构使我们经常所使用到的,但是现实中却有着许多一对多的情况,这也就产生了“树”这一概念。二叉树则是“树”这一概念中的一种特殊情况,其定义为:“是n(n>=0)个结点的有限集合。该集合或者为空集(称为空二叉...原创 2020-03-19 22:40:05 · 4598 阅读 · 0 评论