直接做洛谷上面的快拍模板。。用了个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
[Data Structure][Sort] ...
分类:
编程语言 时间:
2017-09-04 00:57:37
阅读次数:
156
基数排序也是一种不基于比较的排序方法,它的思想是这样的:假设有m个数据,先根据个位数大小对这m个数据进行排序,得到一个新的序列;然后根据十位数大小对这m个数据进行排序,又得到一个新的序列;然后再根据百位、千位,依次类推,直至最高位,最后得到的序列就是有序的序列。那么对每一位的排序是如何进行的呢?位排 ...
分类:
编程语言 时间:
2017-08-24 13:36:10
阅读次数:
141
一、概念 基数排序(raddix sort)首先按照个位数的值进行装桶,个位数的相同的数装进一个桶,然后从第0个桶开始取,取到第9个桶,将数组重新装进数组,在按照这种方式对十位、百位,直到最高位进行操作。 二、复杂度 三、代码实现 ...
分类:
编程语言 时间:
2017-08-23 20:50:34
阅读次数:
240
分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 // 排序原始数据 p ...
分类:
编程语言 时间:
2017-08-14 11:39:13
阅读次数:
251
排序:对一序列对象依据某个keyword进行排序; 稳定:假设a原本在b前面。而a=b,排序之后a仍然在b的前面; 比如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序 不稳定:假设a原本在b的前面。而a=b。排序之后a可能会出如今b的后面。 比如:希尔排序、高速排序、选择排序、堆排序 内 ...
分类:
编程语言 时间:
2017-08-12 18:59:37
阅读次数:
130