快速排序是一種常用的排序算法,其算法思想是通過遞歸地將數組分為較小和較大的兩個子數組,然后不斷重復這個過程,直到整個數組有序。
下面是用Python實現的快速排序算法:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2] # 選擇中間元素作為基準點
left = [x for x in arr if x < pivot] # 小于基準點的元素
middle = [x for x in arr if x == pivot] # 等于基準點的元素
right = [x for x in arr if x > pivot] # 大于基準點的元素
return quick_sort(left) + middle + quick_sort(right) # 遞歸地對左右子數組進行排序
# 示例
arr = [5, 3, 8, 2, 7, 1, 6, 4]
sorted_arr = quick_sort(arr)
print(sorted_arr) # 輸出:[1, 2, 3, 4, 5, 6, 7, 8]
在這個實現中,我們選擇中間元素作為基準點,然后分別將小于、等于和大于基準點的元素放入對應的子數組中。然后,我們遞歸地對左右子數組進行排序,并將排好序的左子數組、中間元素和右子數組連接起來,最終得到整個數組的有序序列。