Neue Technologien verändern sich ständig, und das Beherrschen einiger Fundamente ist eine solide Grundlage für das Lernen und die künftige Aktualisierung von Technologien. Ich habe in letzter Zeit nichts zu tun. Um die Datenstruktur zu überprüfen, die ich zuvor gelernt habe, habe ich den Sortieralgorithmus in der Datenstruktur in JS implementiert und am Ende dieses Artikels eingebettete Demo eingebettet.
Einfache Sortierung
Blasenart
Bubble Sorting ist der einfachste Sortieralgorithmus mit einem Quadrat der Zeitkomplexität n, und der Code lautet wie folgt:
Funktion Bubblesort (Array) {for (var i = 0; i <array.length; i ++) {für (var j = array.length; j> 0; j-) {if (array [j] <array [j - 1]) {var temp = array [j - 1]; Array [j - 1] = Array [j]; Array [j] = temp; }} /* Ausgabeergebnis* /document.write ("Dies ist die + (i + 1) +" Zweite Schleife ・, das Ergebnis ist: "); für (var k = 0; k <array.length; k ++) {document.write (Array [k] +);} document.write (" <br /> ");Direkte Sortierung der direkten Einfügung
Direct Insertion Sorting ist auch ein einfacher Sortieralgorithmus, und die zeitliche Komplexität wird auch durch N quadriert, aber die Leistung ist etwas besser als die Sortierung von Blasen. Der Code ist wie folgt:
Funktion InsertSort (Array) {var temp; für (var i = 1; i <array.length; i ++) {var temp = array [i]; für (var j = i; j> 0 && temp <array [j - 1]; j--) {Array [j] = array [j - 1]; } Array [j] = temp /* Ausgabeergebnis* /document.write ("th? + i +" Das Ergebnis der Bestellung von Pässen ist: ") für (var n = 0; n <array.length; n ++) {document.write (Array [n] +");Wählen Sie Sortier
Die Sortierung der Selektion ist auch ein einfacher Sortieralgorithmus mit einer zeitlichen Komplexität von N quadratisch, und die Leistung ist auch etwas besser als Blasensortierung. Der Code ist wie folgt:
Funktion SelectSort (Array) {var min, temp; ; für (var i = 0; i <array.length; i ++) {min = i; für (var j = i+1; j <array.length; j ++) {if (Array [min]> Array [j]) min = j; } if (min! = i) {temp = array [i]; Array [i] = Array [min]; Array [min] = temp; } /* Output result*/ document.write("+ i + "The result of the ordering of passes is:") for (var n = 0; n < array.length; n++) { document.write(array[n] + ","); } document.write("<br />") /* The output result ends*/ } }Komplexe Sortierung
Hill Sort
Die Sortierung von Hills ist ein Upgrade der Insertionssortierung. Im Jahr 1959 durchbrach Hill die zeitliche Komplexität des N-Platzes, indem er den paarweisen Vergleich bei einfachem Sortieren zum Setzen von Stufen-Leap-Jump-Vergleiche veränderte. Die Sortierung des Hügels geht vom besten NLOGN zum schlechtesten N -Quadrat entsprechend der unterschiedlichen Zeitkomplexität der Schrittgrößen. Der Code ist wie folgt:
Funktion ShallSort (Array) {var Increment = array.length; var i var temp; // var count = 0 speichern; do {increment = math.floor (Increment / 3) + 1; für (i = Increment; i <array.length; i ++) {if (Array [i] <Array [i - Increment]) {temp = array [i]; für (var j = i - Increment; j> 0 && temp <array [j]; j - = inkrement) {array [j + inkrement] = array [j]; } Array [J + Increment] = temp; /* Ausgabeergebnis*/ count ++; document.write("<br />+ count + "The result of the ordering of passes is:") for (var n = 0; n < array.length; n++) { document.write(array[n] + ","); } /* The output result ends*/ } } } while (increment > 1) }Haufensortierung
Die Heap -Sortierung ist ein Upgrade für die Auswahl der Sortierung. Durch kontinuierliches Bauen eines großen oberen Haufens oder eines kleinen oberen Haufens, der Auswahl des größten oder kleinsten Werts und zum Sortieren in das vordere Ende der Warteschlange. Die zeitliche Komplexität der Heap -Sortierung ist in jedem Fall nicht, dass der Code wie folgt ist:
Funktion Haufen (Array) {var temp; var i; für (i = math.floor (array.length / 2); i> = 0; i--) {heapadjust (array, i, array.length-1); // Array-Array in einen großen oberen Heap} für (i = array.length-1; i> = 0; i--) {/*tauschen Sie den Stammknoten aus*/temp = array [i] aus; Array [i] = Array [0]; Array [0] = temp; /*Das verbleibende Array wird weiterhin in einen großen oberen Haufen integriert*/ heapadjust (Array, 0, i - 1); /* Ausgabeergebnis*/document.write ("<br/>+ (Array.Length - i) .ToString ()+" Das Ergebnis der Bestellung von Pässen ist: ") für (var n = 0; n <array.length; n ++) {document.write (Array [n]+"). Das Array // max ist das Endabbildungsabschluss der Array -Funktion Heapadjust (Array, Start, max) {var temp, j; if (temp> = array [j]) break;Sortierung zusammenführen
Zusammenführungssortierung ist die einzige stabile Sortierung in komplexer Sortierung. Es sortiert, indem es das zu sortierende Array aufteilt und dann verschmilzt. Das Quadrat der Komplexität der Zusammenführungssortierzeit ist n. Der Code ist wie folgt:
// Quell -Quell -Array // Ziel -Ziel -Array // S start -einschreibend // T Ziel -Eintragsfunktion MRSORT (Quelle, dest, s, t) {var m; // Wählen Sie den Zwischenwert var dest2 = new Array (); if (s == t) {dest [s] = Quelle [s]; } else {m = math.floor ((s + t) / 2); multus (Quelle, dest2, m+1, t); merge (dest2, dest, s, m, t); /* Ausgabeergebnis*/document.write ("<br/>+++ count+" Das Ergebnis der Pass -Sortierung lautet: ") für (var n = 0; n <dest.length; n ++) {document.write (Array [n]+");}/* Das Ausgabeergebnis endet*/}} // Fusing zwei Abzweige. Array -Sendekript // Gesamtlängenfunktion (Quelle, dest, s, m, n) {für (var j = m+1, k = s; j <= n && s <= m; k ++) {if (Quelle] <Quelle [j]) {dest [k] = Quelle [s ++]; (s <= m) {für (var l = 0; l <= m - s; l ++) {dest [k+l] = Quelle [s+l];Schnelle Sortierung
Schnelle Sortierung ist die am schnellsten bekannte Sortierung mit einer zeitlichen Komplexität von NLOGN, und der Code lautet wie folgt:
var count = 0; Funktion QuickSort (Array, niedrig, hoch) {var temp; if (niedrig <hoch) {var keypoint = quicksorthelp (Array, niedrig, hoch); zählen ++; document.write ("<br /> terminal? + count +" Das Ergebnis der Bestellung der Bestellung ist? niedrig, hoch) {while (niedrig) {whiled (niedrig && Array) <= Array [hoch]) {hoch--;} Temp = Array [niedrig]; Array [hoch];Die obige Zusammenfassung verschiedener Sortiermethoden (JS -Implementierung) in der Datenstruktur ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.