首页 > 编程语言 > 详细

快速排序

时间:2020-03-01 19:57:18      阅读:51      评论:0      收藏:0      [点我收藏+]
def quicksort(data,left,right):
    if left>=right:
        return

    i=left
    j=right
    temp=data[left]#要归位的元素

    while i<j:
        while i<j and data[j]>=temp:
            j-=1
        data[i]=data[j]#右边的都比temp大
        while i<j and data[i]<=temp:
            i+=1
        data[j]=data[i]#左边的都比temp小
        
    data[i]=temp#归位

    quicksort(data,left,i-1)#排序i左边
    quicksort(data,i+1,right)#排序i右边
def partition(data,i,j):
    temp=data[i]#要归位的元素
    
    while i<j:
        while i<j and data[j]>=temp:
            j-=1
        data[i]=data[j]#右边的都比temp大
        while i<j and data[i]<=temp:
            i+=1
        data[j]=data[i]#左边的都比temp小

    data[i]=temp
    return i

def quicksort(data,left,right):
    if left>=right:
        return

    i=partition(data,left,right)#归位一个
    
    quicksort(data,left,i-1)#排序i左边
    quicksort(data,i+1,right)#排序i右边

过程图看这个:https://blog.csdn.net/nrsc272420199/article/details/82587933

快速排序

原文:https://www.cnblogs.com/holaworld/p/12391452.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!