我是靠谱客的博主 完美戒指,这篇文章主要介绍python快排,现在分享给大家,希望可以做个参考。

快排最少的时间复杂度是O(n),平均是O(n logn),最坏O(n^2)。

#quick_sort
array = [1,5,65,23,57,1232,-1,-5,-2,242,100,4,423,2,564,9,0,10,43,64]
def quick_sort(array, left, right):
    if left < right:
        temp = partition(array, left, right)
        quick_sort(array, left, temp-1)
        quick_sort(array, temp+1, right)

#得到每一次排序所确定位置的下标
def partition(array, left, right):
    well = left#well记录比轴大的第一个数的下标
    for i in range(left, right):
        if array[i] < array[right]:#array[right]是轴
            array[i], array[well] = array[well], array[i]
            well += 1
    array[well], array[right] = array[right], array[well]
    return well
print(array)
quick_sort(array, 0, len(array)-1)
print(array)

结果:

[1, 5, 65, 23, 57, 1232, -1, -5, -2, 242, 100, 4, 423, 2, 564, 9, 0, 10, 43, 64]
[-5, -2, -1, 0, 1, 2, 4, 5, 9, 10, 23, 43, 57, 64, 65, 100, 242, 423, 564, 1232]

最后

以上就是完美戒指最近收集整理的关于python快排的全部内容,更多相关python快排内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部