字符串的处理真可谓是博大精深,后缀数组这种数据结构我花了两天时间才明白了其构造的过程。主要是代码不好理解。
数据结构:
1.sa数组,就是后缀数组,按照字典序排列,其意义为:sa[i]=k,排第i名的子串是从k位开始的。
2.rank名次数组,其意义为:rank[i]=k,以i为起点的子串排名为k。
很容易看出来两者可以相互转化。
求这两个数组的过程是基于基数排序,计数排序的方法。
下...
分类:
编程语言 时间:
2014-11-22 12:07:41
阅读次数:
199
如给定数组{1,3,51,5,512,671,9,67},设计程序,输出{9,671,67,512,51,5,3,1}基本思想是给每一位数字定权重,然后使用如W[671] = 6 * w1 + 7 * w2 + 1 * w3;W的个数由数组中位数最长的数字决定。由数组中数字对应的权值来排序即可程序如...
分类:
编程语言 时间:
2014-11-18 23:59:09
阅读次数:
264
计数排序假设n个输入元素中的每一个都介于0和k之间的整数,k为n个数中最大的元素。当k=O(n)时,计数排序的运行时间为θ(n)。计数排序的基本思想是:对n个输入元素中每一个元素x,统计出小于等于x的元素个数,根据x的个数可以确定x在输出数组中的最终位置。此过程需要引入两个辅助存放空间,存放结果的B[1...n],用于确定每个元素个数的数组C[0...k]。算法的具体步骤如下:
(1)根据输...
分类:
编程语言 时间:
2014-11-17 09:17:02
阅读次数:
225
现在已经把常见的9种内部排序算法都用C语言实现了,为了方便自己和大家查看,就弄了这么一个类似于导航目录的东西。
一、冒泡排序
冒泡排序(C语言版)
二、选择排序
选择排序(C语言版)
三、直接插入排序
直接插入排序(C语言版)
四、希尔排序
希尔排序(C语言版)
五、归并排序
归并排序(C语言版)
六、基数...
分类:
编程语言 时间:
2014-11-16 14:44:16
阅读次数:
211
http://www.lydsy.com/JudgeOnline/problem.php?id=1031很容易想到这就是将字符串复制到自己末尾然后后缀数组搞出sa然后按区间输出即可。然后换了下模板,将基数排序放到外边#include #include #include #include #inclu...
分类:
编程语言 时间:
2014-11-13 14:16:56
阅读次数:
251
1. 介绍 排序算法是将一串数据按照某种特定排序方式(规则)进行排序的算法。分为内部排序和外部排序。 内部排序:指排序数据存储在内存中,依照依照某种排序方式(规则)进行排序。内部排序不适合太大的数据。内部排序的八中排序算法:冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序、基数.....
分类:
编程语言 时间:
2014-11-07 16:46:05
阅读次数:
233
Excel最常用的功能就是记录数据,把数据按照行列记录下来。这部分数据是源数据,是业务活动中最原始的流水账,作为后续操作的依据。为了从源数据中得出一定的结论,需要对源数据进行分析得出报表数据。在分析数据的过程中,除了用到根据实际情况变化的源数据,还存在不变的数据,例如各种比例、基数、基础信息,这.....
分类:
其他好文 时间:
2014-11-06 23:18:34
阅读次数:
250
1 #include 2 #include 3 const int N = 10000; 4 const int RADIX = 10; 5 int a[N]; 6 int count[RADIX]; 7 void radixSort(int n) 8 { 9 int *bucket ...
分类:
编程语言 时间:
2014-11-06 21:32:10
阅读次数:
178
进制问题几乎是刚入门计算机时学的东西,即便如此,你知道进制之间是如何转换的吗?下面就来详细说明各进制之间的转换原理。
(一)二、八、十六进制转十进制
2、8、16转10有一个通用的算法,就是用各位上的数乘以本进制的基数的n次幂(n为本位数后面的位数)求值后相加所得。有点绕口是吧?语文没学好,请谅解,下面举个例就懂了。
Eg:100002
=? 10
这是将二进制的10...
分类:
编程语言 时间:
2014-11-06 17:32:37
阅读次数:
219
前几天实现了直接插入排序、冒泡排序和直接选择排序这三个基础排序。今天看了一下冒泡排序的改进算法,快速排序。单独记录一下,后面还有归并和基数排序等快速排序1.选择一个支点默认为数组第一个元素及array[start]作为支点,将所有大于支点元素的值放到支点后面,将所有小于支点元素的值放到支点前面,完成...
分类:
编程语言 时间:
2014-11-05 22:58:49
阅读次数:
345