转自tangjz的博客...基础算法模拟搜索广度优先搜索(BFS)优化:双向BFS深度优先搜索(DFS)优化:折半DFS迭代加深搜索(IDS)启发式搜索(Astar)优化:IDAstar优化:剪枝、位运算排序冒泡排序/选择排序基数排序/桶排序计数排序插入排序/希尔排序快速排序归并排序/求逆序对数堆排...
分类:
编程语言 时间:
2015-02-23 10:50:21
阅读次数:
330
八大排序算法实现
插入排序算法实现
希尔排序算法实现
选择排序算法实现
冒泡排序算法实现
归并排序算法实现
快速排序算法实现
堆排序算法实现
基数排序算法实现...
分类:
编程语言 时间:
2015-02-15 15:11:43
阅读次数:
154
基数排序就不多说了,其思路如下:0. 输入为n个整数,每个数字为b位1. 把整数拆分为b/r“位”, 每个"位"的长度为r(十进制长度)2. 由低到高分别对每个“位”作计数排序值得一说的是,为使算法效率最高,r应该为lgn(取整),然而实现中没有限定r的大小,可以自行设定。不多说,上代码:(Radi...
分类:
编程语言 时间:
2015-02-14 20:02:17
阅读次数:
247
在基数排序( radix sort)中,把数按照某种基数分解为数字,然后对数字进行排序。例3-1 假定对范围在 0 ~ 9 9 9之间的 1 0个整数进行排序。如果使用 r a n g e = 1 0 0 0来调用 B i n S o r t,那么箱子的初始化将需要 1 0 0 0个执行步,节点分配...
分类:
编程语言 时间:
2015-02-05 18:10:13
阅读次数:
229
之前所学的排序都是基于比较的,通过两数的比较得出数的大小顺序,基于比较的算法最优的时间复杂度为n*lg(n)。而计数排序采用了另一种方式,没有比较,让人眼前一亮。但需要特定的环境下才能行。比如输入数组需要是0~k之间的整数。但他至少让排序能在线性时间O(n)内完成。基数排序弥补了计数排序排列大数时需...
分类:
编程语言 时间:
2015-01-31 07:05:59
阅读次数:
213
本次主要记录一些经典的排序算法,其中包括冒泡排序、直接选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序、桶排序以及计数排序和基数排序。首先会给出这些排序算法的基本思想,然后给出实现的代码,最后会给出其时间复杂度。
1:冒泡排序
思想:
(1):比较相邻的前后两个元素,如果后面的数据小于前面的数据,则交换这两个数据的位置。这样经过一次遍历,最小的元素将在第0个位置,属于”冒泡”.
(...
分类:
编程语言 时间:
2015-01-29 17:39:27
阅读次数:
288
首先二分答案ans,然后只要进行判断答案ans是否可行即可。验证方法:首先对每一个位置,求出它开始长度为ans的横行的hash值然后求出每一个hash值的长度为ans的竖列的Hash值查看是否有两个Hash值相同即可(比如我们可以基数排序。。。做什么大死!) 1 /*****************...
分类:
其他好文 时间:
2015-01-28 14:17:45
阅读次数:
252
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
分类:
编程语言 时间:
2015-01-18 22:29:37
阅读次数:
220
基数排序是一种借助“多关键字排序”的思想来实现“单关键字排序”的内部排序算法。实现多关键字排序通常有两种作法: 最低位优先法(LSD) 先对K[0]{基数的最低位}进行排序,并按 K(0) 的不同值将记录序列分成若干子序列之后,分别对 K[1] 进行排序,..., K[d-1]依次类推,直至最后对最次位关键字排序完成为止。 最高位优先法(MSD) 先对 K[d-1]{基数的最高位...
分类:
编程语言 时间:
2015-01-11 10:59:26
阅读次数:
305