亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Python快速排序算法這么實現

小億
84
2023-12-05 10:53:20
欄目: 編程語言

快速排序是一種常用的排序算法,它的實現思路是通過遞歸將數組不斷地劃分為兩個子數組,直到每個子數組只有一個元素,然后再將子數組合并起來。快速排序的關鍵在于選擇一個基準元素,然后通過交換元素的位置將小于基準元素的放在左邊,大于基準元素的放在右邊,最后將基準元素放到正確的位置上。

下面是一種用Python實現快速排序的方法:

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 = [4, 2, 5, 7, 1, 3, 6]
sorted_arr = quick_sort(arr)
print(sorted_arr)

運行以上代碼,將輸出 [1, 2, 3, 4, 5, 6, 7],表示已經對數組進行了快速排序。

在這段代碼中,我們首先判斷數組的長度是否小于等于1,如果是,則直接返回該數組。然后選擇第一個元素作為基準元素,并使用列表解析式將小于等于基準元素的元素放入less數組中,將大于基準元素的元素放入greater數組中。最后,遞歸地對lessgreater數組進行快速排序,并將結果與基準元素合并起來。

需要注意的是,快速排序的實現可能因基準元素的選擇而產生不同的效果。在上述例子中,我們選擇的是第一個元素作為基準元素,但也可以選擇其他元素作為基準元素,如中間元素、隨機元素等。這樣的選擇可能會影響快速排序的時間復雜度和性能。

0
岳阳县| 平和县| 抚顺市| 绥化市| 金寨县| 偃师市| 新津县| 江津市| 布拖县| 蒙城县| 定远县| 尼勒克县| 体育| 县级市| 大悟县| 临泉县| 开远市| 晋江市| 靖远县| 襄樊市| 南江县| 沙河市| 曲阜市| 湄潭县| 石河子市| 尤溪县| 黎川县| 金沙县| 九龙县| 唐山市| 阿巴嘎旗| 铅山县| 松江区| 西乌珠穆沁旗| 三门峡市| 宝丰县| 翼城县| 锡林郭勒盟| 巍山| 安多县| 土默特左旗|