2017-11-20 2 views
-2

wollte nur wissen, ob das Folgende korrekt ist. Ich versuche das zu lösen, indem ich den Sortieralgorithmus verwende. Ich habe versucht, das folgende Array zu versuchen und habe diese Antworten gefunden. Bitte lassen Sie mich wissen, ob das stimmt und ob ich das richtige Verständnis habe. Danke vielmals.Insertion Sort-Algorithmus, mit einem kleinen Array

umge sortierter Reihenfolge:

15, 12, 10, 4 

12, 15, 10, 4 

12, 10, 15, 4 

12, 10, 4, 15 

10, 12, 4, 15 

10, 4, 12, 15 

10, 4, 12, 15 (no swap) 

4, 10, 12, 15 
+2

Warum denken Sie, dass Sie diese "no swap" Linie haben sollten? Und warum haben Sie dies mit Java markiert, wenn Sie uns nur bitten zu überprüfen, ob die Ausgabe Ihrer Implementierung korrekt ist? – GhostCat

+0

Was ist Ihre konkrete Frage? Sie haben zuvor eine ähnliche Frage gestellt: https://stackoverflow.com/questions/47310732/selection-sort-algorithm-using-small-array. Wenn Sie nur ein gültiges Beispiel für den Sortieralgorithmus brauchen, bin ich sicher, dass Sie mit der Suchmaschine Ihrer Wahl eine Menge finden können. – MrSmith42

+0

Ich denke, das sieht gut aus. (Die Zeile "no swap" gibt die Tatsache an, dass 4 und 12 bereits in der richtigen Reihenfolge sind.) Aber markieren Sie das nicht mit Java, das ist keine Java-Frage. – Stefan

Antwort

0

As stated in LECTURE NOTES ON DATA STRUCTURE on page 176

Angenommen, möchten Sie Elemente in aufsteigender wie in obiger Abbildung sortieren. Dann

Schritt 1: Das zweite Element eines Arrays wird mit den Elementen verglichen, die davor angezeigt werden (in diesem Fall nur das erste Element). Wenn das zweite Element kleiner als das erste Element ist, wird das zweite Element in die Position des ersten Elements eingefügt. Nach dem ersten Schritt werden die ersten zwei Elemente eines Arrays sortiert.

Schritt 2: Das dritte Element eines Arrays wird mit den Elementen verglichen, die davor erscheinen (erstes und zweites Element). Wenn das dritte Element kleiner als das erste Element ist, wird es in die Position des ersten Elements eingefügt. Wenn das dritte Element größer als das erste Element, aber kleiner als das zweite Element ist, wird es in die Position des zweiten Elements eingefügt. Wenn das dritte Element größer als beide Elemente ist, wird es unverändert in der Position gehalten. Nach dem zweiten Schritt werden die ersten drei Elemente eines Arrays sortiert.

Schritt 3: Similary, das vierte Element eines Arrays mit den Elementen verglichen, bevor es erscheint (erste, zweite und dritte Element) und wurde das gleiche Verfahren angewendet wird, und dieses Element wird in der richtigen Position eingefügt . Nach dem dritten Schritt werden die ersten vier Elemente eines Arrays sortiert.

0

Die Sequenz mit Kommentaren:

15, 12, 10, 4 start 
12, 15, 10, 4 1st outer loop [0:1] 
12, 10, 15, 4 2nd outer loop [1:2] 
10, 12, 15, 4     [0:1] 
10, 12, 4, 15 3rd outer loop [2:3] 
10, 4, 12, 15     [1:2] 
4, 10, 12, 15     [0:1]