我是靠谱客的博主 完美戒指,最近开发中收集的这篇文章主要介绍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快排所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部