黑马程序员技术交流社区
标题:
希尔排序
[打印本页]
作者:
yaodd321
时间:
2014-11-5 21:20
标题:
希尔排序
今天看到论坛有问道希尔排序,特地上网搜了一下。原理:http://blog.csdn.net/cjf_iceking/article/details/7916194
代码实现:
package cn.itcat.damo1;
/*
* 希尔排序
*/
public class Shell {
public static void main(String[] args) {
int[] arr = {1,3,2,4,49,38,65,97,76,13,27,49,78,34,12,64,1};
shellSort(arr);
}
private static void shellSort(int[] arr) {
System.out.println("排序之前:");
//遍历数组
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
//希尔排序
int len = arr.length;
while(true){
//依次缩减len/2的增量
len = len/2;
for(int i=0;i<len;i++){
for(int j=i+len;j<arr.length;j=j+len){
int temp = arr[j];
int k=0;
for(k=j-len;k>=0&&arr[k]>temp;k=k-len){
arr[k+len] = arr[k];
}
arr[k+len] = temp;
}
}
if(len == 1)
break;
}
System.out.println();
System.out.println("排序之后:");
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2