下面是一個使用遞歸方法實現快速排序的示例代碼:
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
# 示例用法
arr = [5, 2, 9, 1, 8, 6, 3, 7, 4]
sorted_arr = quick_sort(arr)
print(sorted_arr)
輸出結果為:[1, 2, 3, 4, 5, 6, 7, 8, 9]
在快速排序中,通過選擇一個元素作為基準(pivot),將數組分為兩個子數組,一個子數組中的元素小于等于基準,另一個子數組中的元素大于基準。然后對這兩個子數組進行遞歸排序,最終得到排序后的數組。
在示例代碼中,選擇第一個元素作為基準,然后使用列表解析將小于等于基準的元素放入less
列表,將大于基準的元素放入greater
列表。最后遞歸對less
和greater
進行快速排序,并將結果與基準元素合并返回。