91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
盐亭县| 永新县| 博白县| 新竹县| 汤原县| 且末县| 郁南县| 尚义县| 阿勒泰市| 延津县| 石河子市| 菏泽市| 遂溪县| 孟村| 泰来县| 万州区| 大港区| 蒲城县| 五常市| 招远市| 东阿县| 九龙坡区| 丰都县| 八宿县| 岚皋县| 马山县| 黎川县| 荥阳市| 库伦旗| 扶风县| 乐昌市| 二连浩特市| 河东区| 章丘市| 静海县| 栾川县| 五家渠市| 团风县| 台北县| 旌德县| 湛江市|