中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

python如何實現快速排序

小億
103
2023-07-31 12:28:32
欄目: 編程語言

快速排序是一種常用的排序算法,可以通過遞歸的方式實現。其基本思想是選擇一個基準元素,通過一趟排序將待排序的序列分割成兩個部分,其中一部分的所有元素都小于基準,另一部分的所有元素都大于基準,然后對這兩部分遞歸地進行快速排序。

具體實現步驟如下:

  1. 選擇一個基準元素(如序列首元素)。

  2. 設置兩個指針,一個指向序列的起始位置,一個指向序列的末尾。

  3. 從末尾指針開始,向前遍歷,找到第一個小于基準的元素。如果找到,則將該元素放到起始指針的位置,并將起始指針向后移動一位。

  4. 從起始指針開始,向后遍歷,找到第一個大于基準的元素。如果找到,則將該元素放到末尾指針的位置,并將末尾指針向前移動一位。

  5. 重復步驟3和步驟4,直到起始指針和末尾指針相遇。

  6. 將基準元素放到相遇位置,此時基準元素的左側都是小于它的元素,右側都是大于它的元素。

  7. 遞歸地對基準元素左側和右側的子序列進行快速排序。

以下是用 Python 實現快速排序的代碼示例:

def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]  # 選擇第一個元素作為基準
left = [x for x in arr[1:] if x < pivot]  # 小于基準的部分
right = [x for x in arr[1:] if x >= pivot]  # 大于等于基準的部分
return quick_sort(left) + [pivot] + quick_sort(right)
# 示例用法
arr = [4, 2, 9, 5, 7, 1, 6, 3, 8]
sorted_arr = quick_sort(arr)
print(sorted_arr)

運行以上代碼,輸出結果為 [1, 2, 3, 4, 5, 6, 7, 8, 9]

0
玉山县| 武胜县| 交口县| 班玛县| 翁牛特旗| 杭州市| 辽阳市| 天台县| 离岛区| 凉山| 洪江市| 克东县| 泌阳县| 江西省| 腾冲县| 马鞍山市| 平罗县| 乌拉特中旗| 陵水| 孙吴县| 八宿县| 巍山| 九江市| 安远县| 武平县| 渑池县| 延津县| 万盛区| 德格县| 廉江市| 林州市| 九台市| 开远市| 永泰县| 隆林| 太康县| 土默特左旗| 林口县| 尖扎县| 弋阳县| 垫江县|