![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
文章平均质量分 87
根据《算法导论》的内容,选择LeetCode题目进行实战
10000hours
这个作者很懒,什么都没留下…
展开
-
【KMP算法】学习总结
因为不匹配的‘f’之前的子串——‘aabaa’的最长相同前后缀长度为2,即‘b’的下标。‘f’失配,但是‘aabaa’是和主串相匹配的,也就是说模式串中的“aa”(下标为3,4)与主串中的“aa”(下标为3,4)是相匹配的,而且子串“aabaa”中,后缀“aa”有最长相同的前缀“aa”(下标为0,1),也就是说这个前缀“aa”(下标0,1)和主串中的“aa”(下标为3,4)也是相匹配的,所以无需重复比较,直接将指针回退到模式串的‘b’位置继续比较即可。原创 2023-11-23 14:09:58 · 307 阅读 · 0 评论 -
【TopK问题】基于堆的方法&基于分治策略的方法
它利用数组中的一个元素作为pivot,将下标从left到right的元素分为两部分,并以pivot为枢轴将比pivot小的元素放在左边,比pivot大的元素放在右边,通过不断划分数组,最终获得整体的排序。在TopK问题中也利用了这种不断划分的分治策略,但是在快排中,每次要处理左右两部分,在TopK问题中对这一步骤做了简化,即每次只处理一边。因为要找的是最大/最小的k个元素,因此可以通过比较。问题要求得到最大的k个元素,就可以构建含有k个元素的小根堆(相应地,若是求最小的k个元素,就构建大根堆)。原创 2023-11-07 00:15:08 · 390 阅读 · 0 评论 -
【10种排序算法总结】C++实现
之后减小d的值,重复执行分组和排序操作,直至d大小为1,此时得到整体有序的序列。算法思想:桶排序是一种非基于比较的排序算法,通过构建多个映射数据的桶,将数据映射到桶内,对桶内数据进行排序,以空间换时间来实现排序的目的,相当于计数排序的升级。算法描述:依次划分序列直至所有子序列长度为1,依次归并前后相邻的两个子序列,使归并后的序列有序,直至所有的子序列归并完毕,得到整体有序的序列。算法描述:第i趟排序,序列L[0]~L[i-1]为有序子序列,将L[i]插入这个有序子序列中,经过n趟排序得到整体有序的序列。原创 2023-10-31 11:45:21 · 561 阅读 · 1 评论 -
【二叉树遍历总结】C++实现
1. 总结了二叉树的3种遍历方式(先序、中序、后序)的不同实现 - 递归方法实现 - 迭代方法实现2. 用不同的数据结构定义二叉树 - 结构体定义树结点 - 用数组定义二叉树3. 文章内容为个人的学习总结,如有错误,欢迎指正原创 2023-11-03 21:50:20 · 250 阅读 · 0 评论