排序- 希尔排序 ShellSort
2017-10-11 10:40
309 查看
package genius.sort; import java.util.Arrays; public class ShellSortFinal { public static void shellSortSmallToBig(int[] data) { int j = 0; int temp = 0; //外循环控制循环的次数,也就是分组希尔排序的次数....直到分组个数为1.。。 System.out.println("the length of the array is "+data.length); for (int increment = data.length / 2; increment > 0; increment /= 2) { System.out.println("当分组数为increment:" + increment); for (int i = increment; i < data.length; i++) { temp = data[i]; for (j = i - increment; j >= 0; j -= increment) { /* System.out.println("j:" + j); System.out.println("temp:" + temp); System.out.println("data[" + j + "]:" + data[j]);*/ if (temp < data[j]) { data[j + increment] = data[j]; } else { break; } } data[j + increment] = temp; } for (int i = 0; i < data.length; i++){ System.out.print(data[i] + " "); } System.out.print("\n"); } } public static void main(String[] args) { int[] data = new int[] { 26, 53, 67, 48, 57, 13, 48, 32, 60, 50 ,1}; System.out.println(Arrays.toString(data)); shellSortSmallToBig(data); System.out.println("ShellSortFinal.main() Excuted the final Result......."); System.out.println(Arrays.toString(data)); } }
[26, 53, 67, 48, 57, 13, 48, 32, 60, 50, 1] the length of the array is 11 当分组数为increment:5 1 48 32 48 50 13 53 67 60 57 26 当分组数为increment:2 1 13 26 48 32 48 50 57 53 67 60 当分组数为increment:1 1 13 26 32 48 48 50 53 57 60 67 ShellSortFinal.main() Excuted the final Result....... [1, 13, 26, 32, 48, 48, 50, 53, 57, 60, 67]
相关文章推荐
- 排序算法,快速排序,希尔排序,冒泡排序
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法
- 数据结构----希尔排序(最小增量排序)
- 算法之直接插入排序和希尔排序
- C++实现几种常用的时间复杂度为O(nlogn)的排序方法:归并排序、快速排序、堆排序、希尔排序
- 插入排序,希尔排序,堆排序,归并排序,快速排序Java实现
- 希尔排序的实质就是分组插入排序
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- java实现排序(3)-希尔排序
- 【算法】简单插入排序与希尔排序
- 选择排序,插入排序,冒泡排序,希尔排序,快速排序,归并排序
- 插入排序和希尔排序
- 排序之希尔排序
- (数据结构与算法分析 八)------插入排序,希尔排序,归并排序的实现( Java语言描述)
- 初级排序方法——选择、插入、希尔排序
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序
- 插入排序 希尔排序
- 插入排序之希尔排序
- 算法【4】:希尔排序(缩小增量排序)
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.8 希尔排序练习题(JAVA版)