排序算法之希尔排序
2016-10-08 14:44
239 查看
public class ShellSort { public void shellSort(int[] list) { int gap = list.length / 2; while (1 <= gap) { // 把距离为 gap 的元素编为一个组,扫描所有组 for (int i = gap; i < list.length; i++) { int j = 0; int temp = list[i]; // 对距离为 gap 的元素组进行排序 for (j = i - gap; j >= 0 && temp < list[j]; j = j - gap) { list[j + gap] = list[j]; } list[j + gap] = temp; } System.out.format("gap = %d:\t", gap); printAll(list); gap = gap / 2; // 减小增量 } } }
希尔排序是一个比较好的排序算法。时间复杂度是O(nlogn)
相关文章推荐
- 排序算法 - 快速插入排序和希尔排序
- 排序算法-希尔排序
- 排序算法(二)、插入排序 —— 直接插入排序 和 希尔排序
- 排序算法之希尔排序
- 排序算法(一) 插入排序和希尔排序
- 排序算法(一)------直接插入排序和希尔排序
- 排序算法(二):希尔排序
- 排序算法总结(一)---- 直接插入排序,希尔排序(java实现)
- 排序算法Java——插入排序(希尔排序)
- 排序算法(二)——希尔排序
- 排序算法---希尔排序
- 排序算法-希尔排序
- Java排序算法4:希尔排序
- 程序员必须掌握的8大排序算法(二):希尔排序
- 深入浅出理解排序算法之-希尔排序
- 排序算法(希尔排序)
- 排序算法之Shell排序(希尔排序)
- 详谈排序算法之插入类排序(两种思路实现希尔排序)
- JAVA实现排序算法(三):希尔排序
- 排序算法的实现(归并,快排,堆排,希尔排序 O(N*log(N)))