久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Python怎么實現快速排序算法

152次閱讀
沒有評論

共計 581 個字符,預計需要花費 2 分鐘才能閱讀完成。

快速排序是一種基于分治的排序算法,其基本思想是選擇一個元素作為基準,將小于基準的元素放到基準的左邊,大于基準的元素放到基準的右邊,然后對左右兩個子數組分別進行快速排序。以下是用 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進行快速排序,并將結果合并后返回。

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

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-13發表,共計581字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 吴江市| 淳化县| 涞水县| 铅山县| 綦江县| 盐津县| 曲水县| 油尖旺区| 石景山区| 迭部县| 黄平县| 黑龙江省| 伊通| 孟州市| 金沙县| 大石桥市| 左贡县| 汽车| 江门市| 阜康市| 泰来县| 蕉岭县| 德钦县| 赤城县| 如东县| 长兴县| 黄山市| 四会市| 即墨市| 监利县| 兴山县| 闽清县| 哈尔滨市| 勃利县| 阿拉善左旗| 邢台县| 迁安市| 岳池县| 于都县| 泽普县| 南乐县|