Heap Sort
一、演算法流程
二、範例程式 (Python)
def heapify(arr, n, i):
largest = i
left = 2 * i + 1
right = 2 * i + 2
if left < n and arr[left] > arr[largest]:
largest = left
if right < n and arr[right] > arr[largest]:
largest = right
if largest != i:
arr[i], arr[largest] = arr[largest], arr[i]
heapify(arr, n, largest)
def heap_sort(arr):
n = len(arr)
# 建立 Max Heap
for i in range(n // 2 - 1, -1, -1):
heapify(arr, n, i)
# 排序
for i in range(n - 1, 0, -1):
arr[0], arr[i] = arr[i], arr[0] # 最大值換至尾
heapify(arr, i, 0)
# 範例
arr = [4, 10, 3, 5, 1]
heap_sort(arr)
print("Sorted array:", arr)三、特性
項目
說明
四、應用場景
Last updated