- 博客(4)
- 收藏
- 关注
原创 KMP算法笔记
KMP算法原理 Next数组 Next数组在KMP算法中也叫做最长前缀后缀表,通过特定方法生成。 对于需要KMP匹配的模式串,构造next数组需要以下方法: 例如字符串 abcabdcaba 对于人工分析,我们进行如下拆分前缀和后缀 人工分析 我们发现对于一个模式串前缀和后缀存在相同字符串的中 相同字符串中的字符对个数 就为该段字符串对应的最长公共前后缀的长度,一个一个拆分字符是模拟计算机中一个一个遍历。 计算机角度分析 上一部分是对于人眼最直观的认识,那么计算机中怎么去求出这个Next数组呢? 我们首先
2020-07-01 16:45:37
328
原创 C语言实现动态数组
指针与动态数组笔记 看公开课的学习笔记,C学习者交流群号 433368826 (我只是群员) 何为数组? 在C语言中,定义一个数组,则是在计算机的内存中占据了一块固定的区域用于存储数据。 定义数组: int array[10] = { 0 }; 我们定义一个一般的一维数组往往有几个参数,以上述例子为例: 数组存储数据的类型 上为 int 整形,也就是数组中单位大小 数组的变量名 上为...
2020-02-07 18:33:11
8250
1
原创 归并排序详细分析
归并排序 通过定义两个存储空间,第一个存储空间为用户输入的数组段。在第一个存储空间中每次分组比较,然后将结果排入第二个存储空间中。周期结束后两个存储空间交换。 从菜鸟教程学习的这个算法,菜鸟教程中归并排序有两个实现方法:一个是迭代,一个是递归。这里我主要针对迭代分析。 C 迭代法实现源码: void merge_sort(int arr[], int len) { int* a = ar...
2020-01-18 17:18:14
368
2
原创 希尔排序
希尔排序 希尔排序是非稳定的排序算法。 什么是希尔排序? 希尔排序是插入排序的一种改进版本。又称递减增量排序 其原理在,扫描范围通过递减,一开始取中间左右的位置,然后逐渐靠向序列首部。逐次往后扫描,比较大小然后实现交替。 范围递减通过右位移减小扫描初始位置偏移,然后在范围内遍历自加来实现。 用C语言写的希尔排序 void shell_sort(int arr[],int len) { ...
2020-01-17 15:54:43
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人