共計(jì) 548 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
快速排序是一種常見的排序算法,其思想是選取一個(gè)基準(zhǔn)值,將數(shù)組分為兩部分,一部分小于基準(zhǔn)值,一部分大于基準(zhǔn)值,然后遞歸對(duì)兩部分?jǐn)?shù)組進(jìn)行排序。
下面是一個(gè)使用 Python 實(shí)現(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)
# 測(cè)試示例
arr = [3, 6, 8, 10, 1, 2, 1]
sorted_arr = quick_sort(arr)
print(sorted_arr)
在這個(gè)示例中,我們定義了一個(gè) quick_sort
函數(shù)來(lái)實(shí)現(xiàn)快速排序算法。首先判斷數(shù)組的長(zhǎng)度是否小于等于 1,如果是的話直接返回?cái)?shù)組。否則選取數(shù)組的第一個(gè)元素作為基準(zhǔn)值 pivot
,然后使用列表解析式分別得到小于等于基準(zhǔn)值和大于基準(zhǔn)值的兩個(gè)子數(shù)組less
和greater
,最后遞歸對(duì)兩個(gè)子數(shù)組進(jìn)行排序,并將結(jié)果合并返回。
你可以將以上代碼復(fù)制粘貼到 Python 的解釋器中運(yùn)行,測(cè)試快速排序算法的效果。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完