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

溫馨提示×

Python怎么實現快速排序算法

小億
84
2023-11-28 21:04:56
欄目: 編程語言

快速排序是一種基于分治的排序算法,其基本思想是選擇一個元素作為基準,將小于基準的元素放到基準的左邊,大于基準的元素放到基準的右邊,然后對左右兩個子數組分別進行快速排序。以下是用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 = [3, 1, 5, 2, 4]
sorted_arr = quick_sort(arr)
print(sorted_arr)  # 輸出 [1, 2, 3, 4, 5]

在該實現中,我們選擇數組的第一個元素作為基準,并使用列表推導式將小于基準的元素放到less列表中,大于基準的元素放到greater列表中。然后,我們遞歸地對lessgreater進行快速排序,并將結果合并后返回。

需要注意的是,這個實現中每次選擇第一個元素作為基準,可能會導致在某些特定情況下(比如數組已經是有序的)快速排序的效率下降。為了解決這個問題,可以選擇隨機的基準元素,或者進行優化,比如三數取中法、取隨機數等。

0
博客| 成安县| 左云县| 崇仁县| 中牟县| 平湖市| 五寨县| 凯里市| 宣化县| 泰宁县| 斗六市| 庆安县| 宁乡县| 剑川县| 关岭| 郧西县| 隆子县| 太保市| 德惠市| 江阴市| 拜泉县| 阜城县| 河北区| 土默特右旗| 湘西| 兴文县| 长寿区| 龙泉市| 芮城县| 湟中县| 溆浦县| 朝阳市| 彩票| 吉安市| 阳泉市| 婺源县| 板桥市| 内乡县| 塔城市| 绥棱县| 安溪县|