希尔排序

来源:互联网 发布:电子教室软件价格 编辑:程序博客网 时间:2024/06/05 09:52
package SuanFa;
//希尔排序
public class TestXiEr {
public static void main(String[] args){
int[] a = {49,38,65,97,76,13,27,49,78,34,12,64,1};
System.out.println("排序之前:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}

//希尔排序
int d=a.length;
System.out.println("数组长度:=" + d);
while(true){
d=d/2;
System.out.println("d/2=" + d);
for(int x=0;x<d;x++){
System.out.println("--------------------------------------------" + x);
for(int i=x+d;i<a.length;i=i+d){
System.out.println("x=" + x);
System.out.println("i=" + i);
int temp = a[i];
int j;
for(j=i-d; j>=0 && a[j]>temp; j=j-d){
a[j+d] = a[j];
}
a[j+d] = temp;
}
}
if(d==1){
break;
}
}
System.out.println();
System.out.println("排序之后:");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
0 0
原创粉丝点击