python快速排序

#-*- coding: utf-8 -*-

class QuickSort:  

    def sort(self,list,left,right):  

        #开始位置小于 位置

        if(left<right):  

            #取到中间的一个下标值

            s=list[(left+right)/2]  

            #i=0

            i=left  

            #j=下标结束

            j=right  

            while(True):  

                #从开始位置开始比较

                while(list[i]<s):  

                    i+=1  

                while(list[j]>s):  

                    j-=1  

                if(i>=j):  

                    break  

                print list,"***"

                self.swap(list,i,j)     

            self.sort(list,left,i-1)  

            self.sort(list,j+1,right)  

        else:  

             return  

    # 交换变量

    def swap(self,list,i,j):  

        t=list[i]  

        list[i]=list[j]  

        list[j]=t  

 

print 'begin:'  

l=[32,32,34,43,66,65,67,31,77,54,100,42]  

l=list(set(l))#防止队列中含有重复数  

print l  

print l[(0+10)/2]  

q=QuickSort()  #生成排序的一个实例

q.sort(l,0,len(l)-1)  #传入的list数组 开始下标 和 结束下标 

print l 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值