Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erklärung der Hill-Sortierung in JavaScript

Ausführliche Erklärung der Hill-Sortierung in JavaScript

韦小宝
韦小宝Original
2018-03-14 14:08:451796Durchsuche

In diesem Artikel geht es um die Hill-Sortierung in JavaScript. Wenn Sie sich mit der Hill-Sortierung in JavaScript nicht auskennen, schauen wir uns gemeinsam diesen Artikel an. Hören Sie auf, Unsinn zu reden, und kommen Sie zur Sache !

Hill-Sortierung in JavaScript

Hill-Sortierung ist eine effizientere Implementierung der Einfügungssortierung. Der Unterschied zur Einfügesortierung besteht darin, dass weiter entfernte Elemente zuerst verglichen werden. Der Kern der Hill-Sortierung liegt in der Festlegung der Intervallsequenz. Der Intervallablauf kann vorab eingestellt oder dynamisch definiert werden. Der Algorithmus zur dynamischen Definition von Intervallsequenzen wurde von Robert Sedgewick, Co-Autor von „Algorithms (4. Auflage)“ vorgeschlagen. Hier habe ich diese Methode verwendet.

JavaScript-Code-Implementierung

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;}

Das Obige ist der gesamte Inhalt dieses Artikels. Wenn Sie nicht viel darüber wissen, können Sie beide Seiten problemlos selbst meistern

Verwandte Empfehlungen:

So implementieren Sie die JS Hill-Sortierung und Schnellsortierung

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Hill-Sortierung in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn