這篇文章給大家分享的是有關希爾排序算法是什么的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)是專業(yè)的哈爾濱網(wǎng)站建設公司,哈爾濱接單;提供成都網(wǎng)站建設、網(wǎng)站設計,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行哈爾濱網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!希爾排序就是直接插入排序的改進版,也屬于一種插入排序。改進的地方在于每次遍歷設置一個步長然后進行直接插入排序,完成一次遍歷就將步長減半,直到步長小于等于1。
由于每次移動都會移動一個步長的距離,而直接插入排序每次移動只移動一步,所以希爾排序的效率是要比直接插入排序的效率要高的。
算法實現(xiàn):
public static void shellSort(int[] array) { int step = array.length; while (true) { step /= 2; for (int i = 0; i < step; i++) { for (int j = i + step; j < array.length; j += step) { int tmp = array[j]; int k = j; while (k >=step && array[k - step] > tmp) {//將大于tmp的數(shù)往后移 array[k] = array[k - step]; k-=step; } array[k] = tmp;//插入 } } if (step <= 1) return; } }
感謝各位的閱讀!關于希爾排序算法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!