亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java希爾排序怎么實現

發布時間:2021-12-22 15:47:44 來源:億速云 閱讀:121 作者:iii 欄目:編程語言

這篇文章主要講解了“Java希爾排序怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java希爾排序怎么實現”吧!

希爾排序(shell sort)是插入排序的一種,它是簡單插入排序經過改進之后的一個更高效的算法,這個排序方法又稱為縮小增量排序。

希爾排序思想介紹

簡單來說,希爾排序是將較大的數據集合邏輯上分割成若干個小的集合,然后對每個分組分別進行插入排序。

例如,假設待排序元素序列有n個元素,首先取一個整數increment(小于n)作為間隔將全部元素分為increment個子序列,在每一個子序列中分別實行直接插入排序。然后縮小間隔increment,重復上述子序列劃分和排序工作。直到最后取increment=1,將所有元素放在同一個子序列中排序為止。

算法說明:

待排序數據:12,1,6,7,4,10,5,9

第一次的增量為數組元素的長度/2,即increment=4,得到四個分組:

分組一:12,             4

分組二:      1,              10

分組三:          6,                  5

分組四:             7,                    9

對這四個分組分別進行插入排序,最終得到:

4,1,5,7,12,10,6,9

第二次比較,increment取上次值的一半,即increment=2,得到兩個分組:

分組一:4,  5,  12, 6

分組二:    1, 7,  10, 9

對這兩個分組分別進行插入排序,最終得到:

4, 1, 5,7, 6,9,12,10

第三次比較,increment=1,即只有一個分組:

分組一:4,1,5,7,6,9,12,10

   對其進行插入排序,最終得到:

1,4,5,6,7,9,10,12

希爾排序的代碼實現

1. public static void shellSort(int[] arr){  

2.     int temp = 0;  

3.     int j = 0;  

4.     //增量初始值是長度的一半,增量每次變為原來的一半  

5.     for(int inc = arr.length/2 ; inc >= 1 ; inc /= 2){  

6.         for(int i = inc ; i < arr.length; i++){  

7.             temp = arr;  

8.             //將當前數與減去增量之后位置的數進行比較,如果大于,則后移  

9.             for(j = i - inc; j >=0; j -= inc){  

10.                 if(arr[j] > temp){  

11.                     arr[j + inc] = arr[j];  

12.                 }else{  

13.                     break;  

14.                 }  

15.             }  

16.             arr[j + inc]=temp;  

17.         }  

18.     }  

19. }  

感謝各位的閱讀,以上就是“Java希爾排序怎么實現”的內容了,經過本文的學習后,相信大家對Java希爾排序怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

轮台县| 永安市| 陈巴尔虎旗| 绥化市| 万盛区| 宜城市| 桦川县| 噶尔县| 兖州市| 正镶白旗| 博乐市| 色达县| 陇川县| 乾安县| 广东省| 柳河县| 普宁市| 桂林市| 腾冲县| 大同市| 灌南县| 明水县| 安义县| 苍南县| 行唐县| 二连浩特市| 崇仁县| 宁波市| 奈曼旗| 合作市| 禄丰县| 诸城市| 冀州市| 和硕县| 萍乡市| 应用必备| 温泉县| 河源市| 稷山县| 兴义市| 双城市|