java實現希爾排序算法
更新時間:2015年04月09日 11:16:12 投稿:hebedich
希爾排序(Shell Sort)是插入排序的一種,是針對直接插入排序算法的改進,是將整個無序列分割成若干小的子序列分別進行插入排序,希爾排序并不穩(wěn)定。該方法又稱縮小增量排序,因DL.Shell于1959年提出而得名。
希爾排序算法的基本思想是:先取一個小于n的整數d1作為第一個增量,把文件的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同一個組中。先在各組內進行直接插人排序;然后,取第二個增量d2<d1重復上述的分組和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有記錄放在同一組中進行直接插入排序為止。該方法實質上是一種分組插入方法。
//帶增量的插入排序 public static void shellSort(int[] array) { int len = array.length; int h = 1; while (h < len) h = h * 3 + 1; while (h >= 1) { for (int i = 1; i < len; i++) { for (int j = i; j >= h; j = j - h) { if (array[j] < array[j - h]) { Sort.swap(array, j, j - h);//交換j和j-h } else break; } } h = h / 3; } }
希爾排序示意圖
以上所述就是本文的全部內容了,希望能夠對大家熟練掌握java希爾排序有所幫助。
相關文章
利用spring?boot+WebSocket實現后臺主動消息推送功能
目前對于服務端向客戶端推送數據,常用技術方案有輪詢、websocket等,下面這篇文章主要給大家介紹了關于利用spring?boot+WebSocket實現后臺主動消息推送功能的相關資料,需要的朋友可以參考下2022-04-04java實現pdf文件截圖的方法【附PDFRenderer.jar下載】
這篇文章主要介紹了java實現pdf文件截圖的方法,結合實例形式分析了java基于PDFRenderer.jar進行pdf文件截圖的相關操作技巧,并附帶PDFRenderer.jar文件供讀者下載使用,需要的朋友可以參考下2018-01-01