演算法先將要排序的一組數按某個增量d(n/2,n為要排序數的個數)分成若干組,每組中記錄的下標相差d.對每組中全部元素進行直接插入排序,然後再用乙個較小的增量(d/2)對它進行分組,在每組中再進行直接插入排序。當增量減到1時,進行直接插入排序後,排序完成。
//希爾排序(最小增量排序)
public
class shellsort ;
double der=a.length; //陣列總個數
int temp=0;
while(true)
a[j+d]=temp;}}
if(d==1)
}for(int i=0;iout.println(a[i]);}}
}
八大排序演算法 希爾排序
希爾的定義 希爾排序是插入演算法的一種,也叫縮小增量排序。是直接插入排序演算法的一種改良版。希爾演算法是把資料序列按下標的一定增量分組,對每組使用直接插入排序演算法進行排序 然後依次縮減增量再進行排序,待整個序列中的元素基本 注 沒有全部完成排序 有序時,再對全體元素進行一次直接插入排序。基本思想 ...
Java八大排序演算法之一快速排序
選擇乙個基準元素,通常選擇第乙個元素或者最後乙個元素,通過一趟掃瞄,將排序列分成兩部分,一部分比基準元素小,一部分大於基準元素,此時基準元素在其排好序後的正確位置,然後再用同樣的方法遞迴地排序劃分的兩部分。快速排序 public class fastsort int start 0 int end ...
Java 八大排序之 希爾排序
又叫縮小增量排序。將待排序列,分割成若干子串行進行直接插入排序 序列基本有序時,對全體進行直接插入排序 選擇增量序列,t1 t2,tk 序列依次遞減,tk 1按增量序列個數k,進行k次排序 根據增量ti 對子序列進行直接插入排序。當增量為1時,整個序列作為乙個表處理,得到排序後的陣列 public ...