后缀数组大概就是用后缀排名来搞一些事情,因为字符串中的每一个子串都可看做某一后缀的前缀 可用倍增法求出后缀排名 一、数组意义(对于字符串 s) sa[i]:排名为i的后缀的开头在s中的位置 height[i]:排名为i的后缀和排名为i-1的后缀的LCP(最长公共前缀) c[]:用于基数排序,统计前缀 ...
分类:
编程语言 时间:
2017-06-02 22:07:16
阅读次数:
203
算法: 1、将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。 2、从最低位开始,依次进行一次排序。 3、这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。 ...
分类:
编程语言 时间:
2017-06-02 17:40:27
阅读次数:
215
稳定排序nlogn之归并排序_一维,二维 稳定排序:排序时间稳定的排序 稳定排序包括:归并排序(nlogn),基数排序【设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排序的时间复杂度为O(d(n+radix)) 】,冒泡排序(n^2),插入排序(n^2),交换排序(n ...
分类:
编程语言 时间:
2017-05-29 21:42:39
阅读次数:
269
一、排序名称 内部排序:指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。其中快速排序的是目前排序方法中被认为是最好的方法。 1、插入排序:直接插入排序、(shell)希尔排序 2、交换排序:冒泡排序、快速排序 3、选择排序:简单选择排序、堆排序 4、归并排序 5、基数排序 外部排序 ...
分类:
编程语言 时间:
2017-05-29 12:49:32
阅读次数:
210
本博客的代码的思想和图片参考:好大学慕课浙江大学陈越老师、何钦铭老师的《数据结构》 下面是是我的代码 ...
分类:
编程语言 时间:
2017-05-24 00:51:39
阅读次数:
181
#include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #define MaxNumKey 6 /*keyword项数的最大值*/ #define Radix 10 /*keyword基数,此时是十进制整数的基 ...
分类:
编程语言 时间:
2017-05-19 15:42:20
阅读次数:
157
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:1.平方阶(O(n2))排序各类简单排序:直接插入、直接选择和冒泡排序。2.线性对数阶(O(nlog2n))排序快速排序、堆排序和归并排序;3.O(n1+..
分类:
编程语言 时间:
2017-05-19 00:02:39
阅读次数:
261
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:1.平方阶(O(n2))排序各类简单排序:直接插入、直接选择和冒泡排序。2.线性对数阶(O(nlog2n))排序快速排序、堆排序和归并排序;3.O(n1+..
分类:
编程语言 时间:
2017-05-19 00:02:08
阅读次数:
258
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:1.平方阶(O(n2))排序各类简单排序:直接插入、直接选择和冒泡排序。2.线性对数阶(O(nlog2n))排序快速排序、堆排序和归并排序;3.O(n1+..
分类:
编程语言 时间:
2017-05-19 00:01:13
阅读次数:
253
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:1.平方阶(O(n2))排序各类简单排序:直接插入、直接选择和冒泡排序。2.线性对数阶(O(nlog2n))排序快速排序、堆排序和归并排序;3.O(n1+..
分类:
编程语言 时间:
2017-05-19 00:00:34
阅读次数:
310