Die Voraussetzung für das Verständnis des Heap-Sortieralgorithmus ist die Kenntnis des vollständigen Binärbaums und der Heap-Datenstruktur. Der Heap-Sortieralgorithmus visualisiert das Array als vollständigen Binärbaum und wird daher auch als „Heap“ bezeichnet.
1. Gemäß dem Maximum-Heap-Attribut wird das größte Element in der Datengruppe im Wurzelknoten gespeichert.
2. Entfernen Sie das Wurzelelement und platzieren Sie es am Ende des Arrays n-te Position) und platzieren Sie das letzte Element des Baumelements im leeren Bereich.
3. Reduzieren Sie die Heap-Größe um 1.
4. Heapen Sie das Stammelement erneut
5 Wiederholen Sie den Vorgang, bis alle Elemente in der Liste sortiert sind
指定数组arr= 1 12 9 5 6 10 def heapify(arr, n, i): largest = i l = 2 * i + 1 r = 2 * i + 2 if l < n and arr[i] < arr[l]: largest = l if r < n and arr[largest] < arr[r]: largest = r heapifying if largest != i: arr[i], arr[largest] = arr[largest], arr[i] heapify(arr, n, largest) def heapSort(arr): n = len(arr) for i in range(n//2, -1, -1): heapify(arr, n, i) for i in range(n-1, 0, -1): arr[i], arr[0] = arr[0], arr[i] heapify(arr, i, 0) arr = [1, 12, 9, 5, 6, 10] heapSort(arr) n = len(arr) print("Sorted array is") for i in range(n): print("%d " % arr[i], end='')
Das obige ist der detaillierte Inhalt vonKonzept und Code zur Implementierung des Heap-Sortieralgorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!