Shell Sort
来源:互联网 发布:淘宝金牌淘拍档 编辑:程序博客网 时间:2024/06/05 05:11
Shell sort是对插入排序的扩展,但是比插入排序速度快很多。
做了一个有趣的对比试验,比较shell sort和merge sort。
先把需要排序的数组分为大(>1M),中(1K<1M),小(< 1K),惊奇的发现,shell sort 在小数组比merge sort快,在中数组速度表现相类似,然而在大数组上比merge差了些。
假如我们的所要排序的数组相对不是特别大,shell sort是个不错的选择。
另外,shell sort不需要额外分配空间(merge需要分配额外空间)。
一下是shell sort 的Java 实现。
public static void shellSort(int[] arr) {int n = arr.length;int h = 1;while (h < n / 3)h = 3 * h + 1;while (h >= 1) {for (int i = h; i < n; i++) {for (int j = i; j >= h && arr[j] < arr[j - h]; j -= h) {swap(arr, j, j - h);}}h /= 3;}}private static void swap(int[] arr, int i, int j) {int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;}
0 0
- shell sort
- shell sort
- shell sort
- shell sort
- shell sort
- shell sort
- Shell Sort
- shell sort
- shell sort
- shell sort
- shell sort
- Shell Sort
- Shell Sort
- Shell Sort
- Shell Sort
- [shell]sort
- shell sort
- (转)SHELL SORT
- iOS:KVO的概述与使用
- 博客第一篇文章--简单的NTRU 加密算法的编程实现
- 走进swfit(一)nibName
- Scala学习笔记2 (Lang上篇) (zhuan)
- 92. 基于Notes/Domino的文档工作流系统(四)
- Shell Sort
- git 使用 (此处作为基础 大多是只有一个分支时的简单操作)
- Web安全实践(14)嗅探,arp欺骗,会话劫持与重放攻击(下)
- Web安全实践(13)嗅探,arp欺骗,会话劫持与重放攻击(上)
- 学的多,忘的快,我该怎么办?
- iOS唯一标识符
- git的一些问题
- 六星经典CSAPP-笔记(3)程序的机器级表示
- dstat linux监控工具的使用