(〇)前置知识 1.排序 最好会 基数排序 ,实在不行可以快速排序 (倍增算法的时间复杂度会从$\Theta (n\log n)~\to~\Theta (n\log^2 n)$) 2.字符串 后缀 这个大家应该都知道,比方说有一个字符串$a~b~c~d~e~f$,那么它的后缀就是: 后缀1: $a~ ...
分类:
编程语言 时间:
2019-01-19 18:44:27
阅读次数:
207
单向链表的实现 数据结构它描述的是数据和数据之间的关系。数据结构要三大要素:逻辑结构,描述数据和数据之间的关系,分为线性结构和非线性结构两种,所谓线性结构指的就是这种数据结构描述的数据之间存在这样的关系,除了首元素和微元素,任何元素都存在一个唯一前驱和唯一后继(前驱通俗的说就是这个元素的前一个元素, ...
分类:
编程语言 时间:
2019-01-17 17:47:46
阅读次数:
194
冒泡排序(交换排序):大的数右移交换,优化成鸡尾酒排序;演变成快速排序插入排序:从第二个元素往左比较,插入到小于他的数后面希尔排序选择排序:选择最小的放在最左侧,以此类推归并排序:基于分治算法快速排序(交换排序):基于分治算法堆排序和优先级队列,基于二叉堆计数排序:小范围内的整数超级快速桶排序基数排序-桶排序的扩展两种交换排序算法1.冒泡排序->优化成鸡尾酒排序2.快速排序两种基于分治算法的
分类:
编程语言 时间:
2019-01-16 16:36:27
阅读次数:
155
"传送门" 对于SAM上的一个状态,我们可以求出这个状态对应着多少子串,这个很好做,我们只要每次统计一下他所有的转移把对应情况加上就好。 我们首先对SAM上的状态进行拓扑排序(虽然说是拓扑排序但是实际上可以用基数排序完成,以每个状态对应的最大后缀长度为关键字)。之后对于情况1,我们在跳parent树 ...
分类:
其他好文 时间:
2019-01-12 22:56:52
阅读次数:
150
动图演示参考:https://www.cnblogs.com/onepixel/articles/7674659.html 基数排序参考:https://blog.csdn.net/double_happiness/article/details/72452243 1、常见的排序算法 2、算法分析 ...
分类:
编程语言 时间:
2019-01-11 17:19:15
阅读次数:
196
Java实现的12种排序 2019-01-05 一.冒泡排序及其实现 二.希尔排序及其实现 三.插入排序及其实现 四.插入排序及其实现 五.快速排序及其实现 六.合并排序及其实现 七.计数排序及其实现 八.基数排序及其实现 九. 桶排序及其实现 十. 堆排序及其实现 十一.二叉树排序及有序集合 十二 ...
分类:
编程语言 时间:
2019-01-06 00:03:00
阅读次数:
213
插入排序、选择排序、冒泡排序、希尔排序、堆排序、快速排序、归并排序、基数排序 ...
分类:
编程语言 时间:
2019-01-03 12:59:18
阅读次数:
180
计数排序引入 不难发现不论是冒泡排序还是插入排序,其排序方法都是通过对每一个数进行两两比较进行排序的,这种方法称为比较排序,实际上对每个数的两两比较严重影响了其效率,理论上比较排序时间复杂度的最低下限为nlog(n),即任何比较排序的时间复杂度将不会低于nlog(n),那么有没有方法能不经过数列比较 ...
分类:
编程语言 时间:
2018-12-30 16:25:42
阅读次数:
241
常用排序算法 目录 一、冒泡排序 二、选择排序 三、插入排序 四、快速排序 五、堆排序 六、归并排序 七、基数排序 八、希尔排序 九、桶排序 十、总结 一、冒泡排序 1、思路:首先,列表每两个相邻的数比较大小,如果前边的比后边的大,那么这两个数就互换位置。就像是冒泡一样 2、代码关键点: 趟数:n- ...
分类:
编程语言 时间:
2018-12-27 03:17:25
阅读次数:
241