今天開始學Java 排序算法之希爾排序

思路:其實就是增量分割子序列+直接插入排序

Java代碼如下:

public void sort(int[] a){
int d = a.length;
while(true){
    d = d/2;
for(int i = 0;i<d;i++ ){
for (int j = i+d;j<a.length;j=j+d){
if(a[j-d]>a[j]){
int tmp = a[j];
int k2 = j;
for (int k =j-d;k>=0&&a[k]>tmp;k=k-d)
{
a[k+d] =a[k]; 
     k2=k;
}
a[k2] = tmp;
}
}

}
if(d == 1){break;}
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章