Heim > Java > javaLernprogramm > Detaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java

Detaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java

WBOY
Freigeben: 2023-04-22 20:40:06
nach vorne
1581 Leute haben es durchsucht

1. Auswahlsortierung

Auswahlsortierung ist ein einfacher und intuitiver Sortieralgorithmus, unabhängig davon, welche Daten eingegeben werden, die Zeitkomplexität ist O(n²). Bei der Verwendung gilt also: Je kleiner die Datengröße, desto besser. Der einzige Vorteil besteht möglicherweise darin, dass kein zusätzlicher Speicherplatz belegt wird Startposition der sortierten Reihenfolge.

Suchen Sie dann weiterhin das kleinste (größte) Element aus den verbleibenden unsortierten Elementen und platzieren Sie es am Ende der sortierten Sequenz. Detaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java

Wiederholen Sie den zweiten Schritt, bis alle Elemente sortiert sind.

public static void selectSort(int[] arr) {
        //选择排序
        if(arr == null || arr.length < 2) {
            return;
        }
        int n = arr.length;
        for (int i = 0; i < n; i++) {
            int minValueIndex = i;
            for (int j = i+1; j < n; j++) {
                minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex;
            }
            swap(arr,i,minValueIndex);
        }
    }
    public static void swap(int[] arr,int i,int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int[] arr = {7,5,1,9,4,2,6};
        printArray(arr);
        selectSort(arr);
        printArray(arr);
    }
Nach dem Login kopieren

2. Blasensortierung

**Das Prinzip des Blasensortierungsalgorithmus ist wie folgt: **#🎜🎜 # Detaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java1. Vergleichen Sie benachbarte Elemente. Wenn das erste größer als das zweite ist, tauschen Sie beide aus.

2. Machen Sie dasselbe für jedes Paar benachbarter Elemente, beginnend mit dem ersten Paar am Anfang und endend mit dem letzten Paar am Ende. Zu diesem Zeitpunkt sollte das letzte Element die größte Zahl sein.

3. Wiederholen Sie die obigen Schritte für alle Elemente außer dem letzten.

4. Wiederholen Sie die obigen Schritte jedes Mal für immer weniger Elemente, bis keine Zahlenpaare mehr zum Vergleichen vorhanden sind.

public static void bubbleSort(int[] arr) {
        if(arr == null || arr.length < 2) {
            return;
        }
        int n = arr.length;
        for (int i = n-1; i >= 0; i--) {
            for (int j = 0; j < i; j++) {
                if(arr[j] > arr[j+1]) {
                    swap(arr,j,j+1);
                }
            }
        }
    }
     public static void swap(int[] arr,int i,int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
    public static void main(String[] args) {
        int[] arr = {14,6,3,10,2};
        printArray(arr);
        bubbleSort(arr);
        printArray(arr);
    }
Nach dem Login kopieren

3. Einfügungssortierung

Einfügungssortierung bedeutet, dass in den zu sortierenden Elementen, vorausgesetzt, dass die vorherigen n- 1 (Davon sind n>=2) Zahlen sind bereits in der richtigen Reihenfolge. Fügen Sie nun die n-te Zahl in die zuvor angeordnete Reihenfolge ein und finden Sie dann eine geeignete Position für sich selbst, sodass die Reihenfolge der n-ten Zahl vorliegt eingefügt ist auch sequentiell. Der Vorgang des Einfügens aller Elemente nach dieser Methode, bis die gesamte Sequenz in Ordnung ist, wird als Einfügesortierung bezeichnet.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage