Heim  >  Artikel  >  Java  >  Mehrere gängige Methoden zum Schreiben der Blasensortierung in Java

Mehrere gängige Methoden zum Schreiben der Blasensortierung in Java

小老鼠
小老鼠Original
2024-01-04 16:39:21981Durchsuche

Übliche Schreibmethoden: 1. Einfache Blasensortierung; 2. Verbesserte Blasensortierung: Da jede äußere Schleife die größte Zahl an die richtige Position verschiebt, kann die Anzahl der inneren Schleifen reduziert werden, wodurch die Effizienz verbessert wird Sortieren und Blasensortieren: Diese Schreibmethode basiert auf der Idee der Einfügesortierung, indem die sortierten Elemente schrittweise nach vorne verschoben werden, sodass die unsortierten Elemente schrittweise geordnet werden. Diese Methode wird „Cocktail-Sequenzierung“ genannt.

Mehrere gängige Methoden zum Schreiben der Blasensortierung in Java

Das Betriebssystem dieses Tutorials: Windows 10-System, Dell G3-Computer.

Bubble Sort ist ein einfacher Sortieralgorithmus, der das zu sortierende Array wiederholt durchläuft, zwei Elemente gleichzeitig vergleicht und sie vertauscht, wenn sie in der falschen Reihenfolge sind. Die Arbeit des Durchlaufens des Arrays wird wiederholt, bis kein Austausch mehr erforderlich ist, was bedeutet, dass das Array sortiert wurde.

Das Folgende sind einige gängige Java-Implementierungen der Blasensortierung:

1. Grundlegende Blasensortierung:

Java

public static void bubbleSort(int[] arr) {  
    for (int i = 0; i < arr.length - 1; i++) {  
        for (int j = 0; j < arr.length - 1 - i; j++) {  
            if (arr[j] > arr[j + 1]) {  
                // swap arr[j+1] and arr[j]  
                int temp = arr[j];  
                arr[j] = arr[j + 1];  
                arr[j + 1] = temp;  
            }  
        }  
    }  
}

2. Verbesserte Blasensortierung: Aufgrund jeder äußeren Schleife wird die größte Zahl verschoben die richtige Position, so dass die Anzahl der inneren Schleifen reduziert und dadurch die Effizienz verbessert werden kann.

java

public static void bubbleSort(int[] arr) {  
    for (int i = 0; i < arr.length - 1; i++) {  
        boolean swapped = false;  
        for (int j = 0; j < arr.length - 1 - i; j++) {  
            if (arr[j] > arr[j + 1]) {  
                // swap arr[j+1] and arr[j]  
                int temp = arr[j];  
                arr[j] = arr[j + 1];  
                arr[j + 1] = temp;  
                swapped = true;  
            }  
        }  
        // If no two elements were swapped by inner loop, then the array is sorted  
        if (!swapped) break;  
    }  
}

3. Kombination aus Einfügungssortierung und Blasensortierung: Diese Schreibmethode basiert auf der Idee der Einfügungssortierung, indem die sortierten Elemente schrittweise nach vorne verschoben werden, sodass die unsortierten Elemente schrittweise geordnet werden. Diese Methode wird „Cocktail-Sequenzierung“ genannt.

Java

public static void cocktailSort(int[] arr) {  
    int n = arr.length;  
    boolean swapped; // to flag if any swap has been made in a pass  
    for (int i = 0; i < n - 1; i++) {  
        swapped = false; // assume this pass will do nothing  
        for (int j = 0; j < n - 1 - i; j++) { // start with the second last element and go to the last one  
            if (arr[j] > arr[j + 1]) { // if the current element is greater than the next one, swap them  
                int temp = arr[j]; // swap elements  
                arr[j] = arr[j + 1];  
                arr[j + 1] = temp;  
                swapped = true; // flag to indicate a swap has been made in this pass  
            }  
        }  
        // if no two elements were swapped in this pass, then the array is sorted, so we can stop the sorting process  
        if (!swapped) break; // no swaps means the array is sorted, so we can stop the sorting process. This optimization is not required for correctness, but it can help in practice. If the array is already sorted, the outer loop will keep making passes without making any swaps, so we can stop early. This optimization can be applied to any version of bubble sort

Das obige ist der detaillierte Inhalt vonMehrere gängige Methoden zum Schreiben der Blasensortierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn