Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Sortierung des JS Hill-Algorithmus

Detaillierte Erläuterung der Sortierung des JS Hill-Algorithmus

小云云
小云云Original
2018-03-07 10:45:521270Durchsuche

Der Hill-Algorithmus ist im Prinzip auch eine Art Einfügungssortierung. Bevor Sie den Hill-Algorithmus verstehen, müssen Sie die Einfügungssortierung verstehen, die wir zuvor mit Ihnen geteilt haben. Detaillierte Erklärung der JS-Einfügungssortierung, das hoffe ich Artikel kann jedem helfen.

Prinzip:
Hill-Sortierung gruppiert die Daten basierend auf der Einfügungssortierung, unterteilt die Originaldaten in mehrere Teilmengen und sortiert sie dann nacheinander. Die Teilmengen werden sortiert und so weiter , kontinuierlich in Teilmengen unterteilt, bis sie schließlich vollständig sortiert sind.

Sequenz: [3,5,2,4,7,6,8,9,1]
Teilen Sie zunächst die gesamte Sequenz basierend auf der Lücke in Teilmengen und sortieren Sie die Teilmengen im Allgemeinen Math.floor(arr.length/2))
gap:4
Die geteilte Teilmenge ist: 3,7,1 5,6 2,8 4,9 ist die Teilmenge
Nach dem Sortieren der Teilmengen : 1,3,7 5,6 2,8 4,9
Die Zahl ist: [1,5,2,4,3,6,8,9,7]

Ändern Sie die Lücke Wert eingeben und erneut sortieren
Lücke: 2
……..
Stoppen, bis der Lückenwert 0 ist

JS-Code-Implementierung:

var arr=[3,5,2,4,7,6,8,9,1];var gap=Math.floor(arr.length/2);       
while(gap>0){    for(var i=gap;i<arr.length;i++){        var temp=arr[i];        var j=i-gap;        while(j>=0&&arr[j]>temp){
            arr[j+gap]=arr[j];
            arr[j]=temp;
            j-=gap;
        }
        arr[j+gap]=temp;
        }
    gap=Math.floor(gap/2); 
}

输出结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Verwandte Empfehlungen:

Detaillierte Erläuterung der JS-Einfügungssortierung

Beispielanalyse grundlegender, häufig verwendeter Sortieralgorithmen in JavaScript

Detaillierte Erläuterung der Javascript-Array-Deduplizierung und Beispiele für schnelle Sortieralgorithmen

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Sortierung des JS Hill-Algorithmus. 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