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:
Beispielanalyse grundlegender, häufig verwendeter Sortieralgorithmen in JavaScript
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!