题目大意: 求多个字符串的LCS。 思路: 同SPOJ-LCS2,不过因为SPOJ上数据比较水,当时用错误的写法过掉了,这次用正确的写法重新过了一遍。 拓扑排序按照每个状态的len值,用计数排序实现。 每个状态往上更新时,应该对std::min(s[p].maxlen,s[q].len)取max(每 ...
分类:
其他好文 时间:
2017-09-14 13:31:21
阅读次数:
266
直接做洛谷上面的快拍模板。。用了个log的小优化,时间瞬间优化三分之一。。 ...
分类:
编程语言 时间:
2017-09-13 11:56:33
阅读次数:
131
import math def radixSort(list, radix = 10): ''' math.ceil 为x取整,结果是不小于x的最小整数. math.log(x, a) 返回 log 以 a 为底 x 的对数,若不给定 a 则底默认为 e ''' k = int(math.ceil(... ...
分类:
编程语言 时间:
2017-09-08 23:03:22
阅读次数:
238
本文节选自:http://python.jobbole.com/82270/ 本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序 ...
分类:
编程语言 时间:
2017-09-06 10:03:05
阅读次数:
226
分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 1、冒泡算法(bubble)- -属 ...
分类:
编程语言 时间:
2017-09-05 13:31:16
阅读次数:
210
参考博客:常用排序算法总结(二) 计数排序 counting sort 1.计数排序是一种非常快捷的稳定性强的排序方法,时间复杂度O(n+k),其中n为要排序的数的个数,k为要排序的数的组大值。计数排序对一定量的整数排序时候的速度非常快,一般快于其他排序算法。但计数排序局限性比较大,只限于对整数进行 ...
分类:
编程语言 时间:
2017-09-05 01:49:27
阅读次数:
283
[Data Structure][Sort] ...
分类:
编程语言 时间:
2017-09-04 00:57:37
阅读次数:
156
基数排序也是一种不基于比较的排序方法,它的思想是这样的:假设有m个数据,先根据个位数大小对这m个数据进行排序,得到一个新的序列;然后根据十位数大小对这m个数据进行排序,又得到一个新的序列;然后再根据百位、千位,依次类推,直至最高位,最后得到的序列就是有序的序列。那么对每一位的排序是如何进行的呢?位排 ...
分类:
编程语言 时间:
2017-08-24 13:36:10
阅读次数:
141
计数排序并非一种基于比较进行的排序,它是计算一个序列中的值在正常排好序中的序列所处的位置,怎么求解一个数的位置呢?就是利用下脚标进行求解,新建一个数组resu[],数组的长度要比序列中的最大值大1,数组中的值全部初始化为0,然后遍历原序列,将原序列的值i作为新建数组resu[]的下脚表,对resu[ ...
分类:
编程语言 时间:
2017-08-23 23:00:44
阅读次数:
199
一、概念 基数排序(raddix sort)首先按照个位数的值进行装桶,个位数的相同的数装进一个桶,然后从第0个桶开始取,取到第9个桶,将数组重新装进数组,在按照这种方式对十位、百位,直到最高位进行操作。 二、复杂度 三、代码实现 ...
分类:
编程语言 时间:
2017-08-23 20:50:34
阅读次数:
240