首頁  >  文章  >  web前端  >  JavaScript中的希爾排序詳解

JavaScript中的希爾排序詳解

韦小宝
韦小宝原創
2018-03-14 14:08:451798瀏覽

這篇文章講述了JavaScript中的希爾排序,大家對JavaScript中的希爾排序不了解的話或對JavaScript中的希爾排序感興趣的話那麼我們就一起來看看本篇文章吧, 好了廢話少說進入正題吧!

JavaScript中的希爾排序

希爾排序是插入排序的一種更高效率的實作。它與插入排序的不同之處在於,它會優先比較距離較遠的元素。希爾排序的核心在於間隔序列的設定。既可以提前設定好間隔序列,也可以動態的定義間隔序列。動態定義間隔序列的演算法是《演算法(第4版》的合著者Robert Sedgewick提出的。在這裡,我就使用了這種方法。

JavaScript程式碼實作

function shellSort(arr) {  
    var len = arr.length,  
        temp,  
        gap = 1;  
    while(gap < len/3) {          //动态定义间隔序列  
        gap =gap*3+1;  
    }  
    for (gap; gap > 0; gap = Math.floor(gap/3)) {  
        for (var i = gap; i < len; i++) {  
            temp = arr[i];  
            for (var j = i-gap; j >= 0 && arr[j] > temp; j-=gap) {  
                arr[j+gap] = arr[j];  
            }  
            arr[j+gap] = temp;  
        }  
    }  
    return arr;}

以上就是這篇文章的所有內容,大家要是還不太了解的話,可以自己多實現兩邊就很容易掌握了哦!

##JS希爾排序與快速排序的實作方法#

以上是JavaScript中的希爾排序詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn