Ich würde gerne wissen, wie sonst kann ich Bubble-Sort zu optimieren, so dass es Elemente überblickt, die bereits sortiert wurden, auch nach dem ersten Durchlauf.Optimized Bubble Sort (Java)
Eg. [4, 2, 3, 1, 5, 6] --> [2, 3, 1, **4, 5, 6**]
Wir beobachten, dass [4,5,6] sind bereits in sortierter Reihenfolge, wie kann meinen Code so ändern, dass es diese 3 Elemente in dem nächsten Durchgang mit Blick auf? (was bedeutet, dass die Sortierung effizienter wäre?) Schlagen Sie eine rekursive Methode vor?
public static void bubblesort(int[] a) {
for(int i=1; i<a.length; i++) {
boolean is_sorted = true;
for(int j=0; j<a.length; j++) {
if(a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
is_sorted = false;
}
}
if(is_sorted) return;
}
}
Vielen Dank für Ihre Zeit!
Wie können Sie wissen, dass sie bereits sortiert sind? – Pol0nium
beziehen Sie sich auf is_sorted? es ist nur eine Flagge – kent
@ Pol0nium: weil ein Mensch dies sieht. Die Frage ist, wie man den Algorithmus sieht, dass –