溫馨提示×

python實現(xiàn)快速排序的示例(二分法思想)

小云
94
2023-08-17 13:58:40
欄目: 編程語言

下面是一個使用遞歸方法實現(xiàn)快速排序的示例代碼:

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),將數(shù)組分為兩個子數(shù)組,一個子數(shù)組中的元素小于等于基準,另一個子數(shù)組中的元素大于基準。然后對這兩個子數(shù)組進行遞歸排序,最終得到排序后的數(shù)組。

在示例代碼中,選擇第一個元素作為基準,然后使用列表解析將小于等于基準的元素放入less列表,將大于基準的元素放入greater列表。最后遞歸對lessgreater進行快速排序,并將結果與基準元素合并返回。

0