Heim >Java >JavaErste Schritte >Was ist die Idee, einen Schnellsortierungsalgorithmus in Java zu implementieren?

Was ist die Idee, einen Schnellsortierungsalgorithmus in Java zu implementieren?

王林
王林Original
2020-06-10 10:40:403224Durchsuche

Was ist die Idee, einen Schnellsortierungsalgorithmus in Java zu implementieren?

1. Was ist der Schnellsortierungsalgorithmus

Tatsächlich ist die Schnellsortierung eine Verbesserung gegenüber der Blasensortierung.

2. Die Idee des Schnellsortierungsalgorithmus

Teilen Sie die zu sortierenden Daten durch eine Sortierung in zwei unabhängige Teile auf, und alle Daten in einem Teil sind höher als alle Die Daten im anderen Teil sollten klein sein. Anschließend können die beiden Teile der Daten mit dieser Methode schnell sortiert werden, sodass die gesamten Daten zu einer geordneten Sequenz werden.

(Empfohlenes Video-Tutorial: Java-Video-Tutorial )

3. Implementierungsideen

(1) Nehmen Sie das erste Schlüsselwort K 1 als Kontrollwörter , teilen Sie [K 1 ,K 2 ,…,K n ] in zwei Unterbereiche auf, sodass alle Schlüsselwörter im linken Bereich kleiner oder gleich K 1 sind, alle Schlüsselwörter im rechten Bereich größer oder gleich K sind 1 und schließlich befindet sich das Steuerwort in der Mitte der beiden Teilbereiche. Die Daten im Unterbereich befinden sich noch in einem ungeordneten Zustand. ;

(2) Behandeln Sie den linken Bereich als Ganzes und verwenden Sie die Schritte in (1), um ihn zu verarbeiten, und führen Sie die gleiche Verarbeitung im rechten Bereich durch. (d. h. Rekursion)

(3) Wiederholen Sie die Schritte (1) und (2), bis der linke Bereich verarbeitet ist.

4. Implementierungscode

static void quicksort(int n[], int left, int right) {
        int dp;
        if (left < right) {
            dp = partition(n, left, right);
            quicksort(n, left, dp - 1);
            quicksort(n, dp + 1, right);
        }
    }
 
    static int partition(int n[], int left, int right) {
        int pivot = n[left];
        while (left < right) {
            while (left < right && n[right] >= pivot)
                right--;
            if (left < right)
                n[left++] = n[right];
            while (left < right && n[left] <= pivot)
                left++;
            if (left < right)
                n[right--] = n[left];
        }
        n[left] = pivot;
        return left;
    }

Empfohlenes Tutorial: Java-Eingabeprogramm

Das obige ist der detaillierte Inhalt vonWas ist die Idee, einen Schnellsortierungsalgorithmus in Java zu implementieren?. 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