在介绍优先队列的博文中,我们提到了数据结构二叉堆,并且说明了二叉堆的一个特殊用途——排序,同时给出了其时间复杂度O(N*logN)。这个时间界是目前我们看到最好的(使用Sedgewick序列的希尔排序时间复杂度为O(N4/3),下图为两者函数图像对比,但是注意,这并不是希尔排序与堆排序的对比,只是两 ...
分类:
编程语言 时间:
2017-09-20 21:50:32
阅读次数:
173
希尔排序
package ShellSort;import Utils.SortUtils;public class Demo { public static void shellSort(int[] a){ int temp,j;
int increment = a.length; do{
increment = incr...
分类:
编程语言 时间:
2015-07-26 22:44:00
阅读次数:
360
C/C++中的经典排序算法总结
在C/C++中,有一些经典的排序算法,例如:冒泡排序、鸡尾酒排序或双向冒泡排序(改进的冒泡排序)、选择排序、直接插入排序、归并排序、快速排序、希尔排序和堆排序等等。下面对这些排序算法进行一一解析并给出示例代码以共享之。
1、冒泡排序
冒泡排序是最基本的排序算法,之所以称之为冒泡排序是因为在冒泡排序的过程中总是大数往前放,小数往后放,相当...
分类:
编程语言 时间:
2015-07-23 12:09:13
阅读次数:
161