Einfache JavaScript-Bestellalgorithmen

Ein Algorithmus ist per Definition eine geordnete Menge (dies ist sehr wichtig) von systematischen Operationen, die es uns ermöglicht, eine Berechnung durchzuführen, um die Lösung aller Probleme desselben Typs zu finden. Mit anderen Worten, es handelt sich um eine Reihe von Anweisungen, die immer dem folgenden Muster folgen:

  • Genauigkeit: Sie müssen jeden Schritt oder jede Anweisung auf einzigartige und eindeutige Weise erklären.
  • Endlich: Die Anzahl der auszuführenden Befehle muss begrenzt sein.
  • Definition: Die gleichen Eingabedaten sollten immer die gleichen Ausgabeinformationen liefern.
  • Eingabe: Die Anzahl der Eingabeelemente kann null oder mehr sein.
  • Lösung: Sie müssen immer ein Ergebnis erzeugen, das die Ausgabedaten oder.

Wenn ein Algorithmus in einer bestimmten Programmiersprache implementiert ist, wird er zu einem Programm, das in einem Computer ausgeführt werden kann. Daher können wir sagen, dass ein Programm ein Algorithmus oder eine Reihe von Algorithmen ist, die in einer bestimmten Sprache geschrieben sind, damit der Computer kann interpretieren In diesem Fall wird dieses Programm als Rechenalgorithmus bezeichnet. Wenn Sie jedoch keinen Computer zum Ausführen benötigen, sprechen wir von nicht-rechnerischen Algorithmen.

In unserem Fall werden wir über Rechenalgorithmen sprechen.

Wenn wir wissen, was ein Algorithmus ist, konzentrieren wir uns auf die Sortieralgorithmen oder auf den gleichen Algorithmus, mit dem eine Liste sortiert und zurückgegeben wird, die ursprünglich mit zufällig platzierten Elementen versehen wurde.
Die 3 bekanntesten Sortieralgorithmen sind Blasensortierung oder Blasensortierung, Auswahlsortierung oder Sortierung nach Auswahl und Einfügungssortierung oder Sortierung nach Einfügung. Alle von ihnen gelten als Algorithmen oder einfache Methoden, da sie durch Iteration oder Wiederholung bis zu einer Anzahl von Malen gelöst werden.

1. Blase sortieren oder nach Blase sortieren
Nehmen wir als Beispiel ein Array mit vier Werten, in diesem Fall der Einfachheit halber vier Zahlen, werden wir sehen, wie der Algorithmus funktioniert.

Array = (4, 7, 8, 5, 9);

Wir möchten, dass Sie es zum Beispiel in der Reihenfolge vom höchsten zum niedrigsten zurückgeben, dh (9, 8, 7, 5, 4).

Dazu müssen wir zuerst die ersten beiden Werte fragen, die am höchsten sind. Falls der zweite Wert größer ist als der erste, wie es der Fall ist, müssten wir sie umtauschen, stattdessen, wenn sie bereits bestellt sind, lassen wir sie so, wie sie sind.
Dann sollte der gleiche Vorgang mit dem zweiten und dritten Wert wiederholt werden. In diesem Fall ist der dritte Wert größer, sodass wir ihn austauschen und unser Array = (7, 8, 4, 5, 9) belassen.
Dann wiederholen wir den vorherigen Schritt mit dem dritten und vierten Wert und tauschen sie erneut aus. (7, 8, 5, 4, 9).
Und schließlich nach der ersten Iteration wäre: (7, 8, 5, 9, 4).
Es ist immer noch nicht geordnet, es wurde jedoch erreicht, dass das letzte Element, das rechts vom Ganzen, die 4 ist, wenn es als kleinste Zahl von allen geordnet ist.
In der nächsten Runde, um unser Array zu bestellen, ist es nicht mehr erforderlich, das letzte zu berücksichtigen, da wir bereits wissen, dass es bestellt ist, sodass wir das erste und zweite Element, dann das zweite und dritte Element und schließlich das dritte und vierte Element vergleichen und das Array verbleiben: ( 8, 7, 9, 5, 4).
Jetzt ist das letzte und vorletzte Element bereits sortiert.
Wir gehen zurück zu einer weiteren Runde und vergleichen den ersten und zweiten Wert und dann den zweiten und dritten und das Array sieht so aus: (8, 9, 7, 5, 4).
Die letzten drei Elemente sind bereits sortiert, sodass nur noch eine Runde erforderlich ist, um das Array vollständig zu sortieren: (9, 8, 7, 5, 4).

See also  Erste Schritte mit Less.js

So funktioniert der Burburja-Algorithmus , der so genannt wird, weil in jeder Runde das letzte Element als Blase aufsteigt und geordnet bleibt.

Jetzt in JavaScript implementiert ist sehr einfach:

 function burburja (myArray) {var tam = myArray.length; für (var temp = 1; temp <tam; temp ++) {für (var left = 0, left <(tam - temp); left ++) {var right = left + 1; if (myArray [left] <myArray [right] {sort (myArray, left, right);}}} return myArray;} 

Wir übergeben ein Array an unsere Funktion und darin berechnen wir als erstes seine Größe und die Anzahl der Elemente im Array.
Dann erstellen wir eine externe Schleife, die unser Array so oft durchläuft, wie es weniger als ein Element gibt (da dies die Zeiten sind, die erforderlich sind, damit es vollständig geordnet ist) .
Intern erstellen wir eine weitere Schleife, die die Werte vergleicht und wenn der linke kleiner als der rechte ist, tauscht sie diese mit der Ordnungsfunktion aus, die wir als nächstes sehen werden.
Schließlich wird das geordnete Array zurückgegeben.

 Funktionssortierung (myArray, value1, value2) {var temp = myArray [value1]; myArray [value1] = myArray [value2]; myArray [value2] = temp; return myArray;} 

Dabei ist value1 der Index des ersten auszutauschenden Elements und value2 der Index des zweiten auszutauschenden Elements.

bubblesolvetic.jpg

2. Auswahl sortieren oder nach Auswahl sortieren
Der unten gezeigte Algorithmus verschiebt die Elemente nicht einzeln wie in der Blase, sondern durchläuft zunächst das gesamte Array und wählt dann das richtige Element für die Platzierung gemäß den Kriterien aus, die wir befolgen (z. B. vom höchsten zum niedrigsten) es platziert es direkt an seiner Position, und so erhält der Algorithmus seinen Namen, wählt ein Element aus, nimmt es und bewegt es mit einer einzigen Bewegung an seine richtige Position.

See also  So überprüfen Sie Treiberfehler in Windows 10, 8, 7

Im gleichen Beispiel wie vor Array = (4, 7, 8, 5, 9), wenn wir es vom höchsten zum niedrigsten sortieren möchten, würde es zuerst 9 auswählen und es an die erste Stelle setzen und 4 würde die letzte Position einnehmen (9, 7, 8, 5, 4). In der zweiten Runde würde ich die 8 auswählen und ich würde sie mit der 7 austauschen, um in der richtigen Position zu bleiben. In den folgenden Runden würde es nichts ändern, da es bereits bestellt wurde.

Der Code dieses Algorithmus würde folgendermaßen aussehen:

 Funktionsauswahl (myArray) {var tam = myArray.length; für (var temp = 0; temp <tam -1; temp ++) {major = temp; for (var check = temp + 1; check <tam; check ++) {if (myArray [check] <myArray [major] {major = check;}} sort (myArray, major, check);} return myArray;} 

Der Code funktioniert ähnlich wie bei der Sprechblase, aber die externe for-Schleife durchläuft die Werte von 0 bis N-2 (dies ist die gleiche Anzahl von Schritten zwischen 1 und N-1 wie bei der Sprechblase, die Operation ist jedoch unterschiedlich) und arbeitet direkt weiter die Elemente, um sie in jeder Runde an die richtige Position zu bringen.
Die Anzahl der Runden, die erforderlich sind, um alle Elemente zu ordnen, ist dieselbe wie in der N-1-Blase, da wir nach jeder Iteration ein Element an seiner Stelle belassen, das wir in den nächsten Runden ignorieren können.

Die Bestellfunktion wurde jedoch geringfügig geändert, um uns die Schritte zu ersparen, wenn wir feststellen, dass ein Artikel bereits bestellt ist:

 Funktion sort (myArray, value1, value2) {if (value1 == value2) {return myArray; } var temp = myArray [value1]; myArray [value1] = myArray [value2]; myArray [value2] = temp; return myArray;} 

Um dies zu erreichen, haben wir eine if-Schleife eingefügt, in der überprüft wird, ob die Werte übereinstimmen, dh ob sie bereits bestellt wurden.

3. Einfügungssortierung oder Sortierung nach Einfügung
Schließlich werden wir den effizientesten Algorithmus der drei sehen, da wir nicht immer N-1-Iterationen benötigen, um unser Array zu platzieren, wie wir als nächstes sehen werden.

See also  So verbergen Sie einen WhatsApp-Chat auf dem Android-Sperrbildschirm

Dieser Algorithmus des Einfügens hat einen ähnlichen Vorgang wie das Platzieren einer Kartenhand in einem Pokerspiel, während die Karten ausgeteilt werden.
Normalerweise ordnen wir die Karten nach Farben und in aufsteigender Reihenfolge wie folgt:
Zunächst wird ein Brief verteilt, ein einzelnes Element, das geordnet ist (weil es eindeutig ist). Wenn es dann “j” Elemente gibt, die vom kleinsten zum größten geordnet sind, nehmen wir das Element j + 1 und vergleichen es mit allen Elementen, die bereits geordnet sind. Wenn Sie auf ein kleineres Element stoßen, das sich nach rechts bewegt hat, wird dieses Element eingefügt (j + 1) und bewegt sich zum Rest.

Der in die JavaScript-Sprache übersetzte Einfügealgorithmus lautet wie folgt:

 Einfügen von Funktionen (myArray) {var tam = myArray.length, temp, place; für (var obj = 0; obj <tam; obj ++) {temp = myArray [obj]; für (place = obj - 1; place> = 0 && myArray [place]> temp; place--) {myArray [place + 1] = myArray [place]; } myArray [place + 1] = temp; } return myArray;} 

insercionsolvetic.jpg

Und so werden die drei einfachen Sortieralgorithmen und der Code bei der Implementierung in JavaScript definiert.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *