十大排序算法——希爾排序

主要思想:

基于插入排序,交換不相鄰的元素已對數(shù)組的局部進行排序,并最終用插入排序?qū)⒕植坑行虻臄?shù)組排序。思想是使數(shù)組中任意間隔為h的元素都是有序的,這樣的數(shù)組稱為h有序數(shù)組.

Java

public class Shell {
    public static void main(String[] args) {
        int[] array = new int[]{2, 3, 5, 8, 9, 0, 7, 5, 1, 6, 8, 7, 15};
        sort(array);
        System.out.println(Arrays.toString(array));
    }

    private static void sort(int[] array) {
        int n = array.length;
        int h = 1;
        while (h<n/3) h = 3*h +1;
        while (h >= 1) {
            for (int i = h; i < n; i++) {
                for (int j = i; j >= h && (array[j] < array[j - h]); j -= h) {
                    int temp = array[j];
                    array[j] = array[j - h];
                    array[j-h]= temp;
                }
            }
            h /=3;
        }
    }
}

C

void Shell() 
{ 
  for(int incr=3;incr<0;incr--)//增量遞減,以增量3,2,1為例 
{ 
       for(int L=0;L<(n-1)/incr;L++)//重復(fù)分成的每個子列表 
{ 
   for(int i=L+incr;i<n;i+=incr)//對每個子列表應(yīng)用插入排序 
   { 
      int temp=arr[i]; 
      int j=i-incr; 
      while(j>=0&&arr[j]>temp) 
      { 
          arr[j+incr]=arr[j]; 
          j-=incr; 
} 
arr[j+incr]=temp; 
} 
} 
} 
} 

最好情況時間:O(n)。

最壞情況時間:O(n^2)。

適用于排序小列表,改進了插入排序,減少了比較的次數(shù)。是不穩(wěn)定的排序,因為排序過程中元素可能會前后跳躍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,819評論 0 15
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,297評論 0 52
  • 1、這節(jié)課最印象深刻的三點? ①老師帶我們先復(fù)習了上節(jié)課的遺留知識點,感覺心理學很深刻。有一種“不識廬山真面目,只...
    寂寞沙州冷閱讀 182評論 10 1
  • 今天的調(diào)查問卷兼職,是用掃二維碼的方式來做的,一開始那個帶領(lǐng)我們的組長劉鑫,第一眼就是感覺已經(jīng)是工作的人了,用的是...
    聽故事的人RFY閱讀 163評論 0 0
  • 2.1大禮包 Guideline 2.1 - Information Needed We were unable ...
    俊逸的獅子閱讀 521評論 0 0

友情鏈接更多精彩內(nèi)容