最近在自学python,于是想从数据结构入手。无聊用python写了递归的快速排序。果然不是很熟练,写了很久才没报错,当是复习快排了,hh..

  代码如下

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
 1 import random
 2 
 3 def aswap(lis,a,b):
 4     tmp=lis[a]
 5     lis[a]=lis[b]
 6     lis[b]=tmp
 7     return
 8 
 9 def QuickSort(array,left,right):
10     if left>=right:
11         return
12     divide=qSort(array,left,right)
13     QuickSort(array,left,divide-1)
14     QuickSort(array,divide+1,right)
15     return 
16 
17     
18     
19 def qSort(array,left,right):
20     mid=(left+right)//2
21     tmp=array[mid]
22     aswap(array,right,mid)
23     mid=right
24     while left<right:
25         while left<right:
26             if tmp>array[left]:
27                 left+=1
28             else:
29                 break
30         if(left<right):
31             array[mid]=array[left]
32             mid=left
33             right+=-1
34         while left<right:
35             if tmp<array[right]:
36                 right+=-1
37             else: break
38         if(left<right):
39             array[mid]=array[right]
40             mid=right
41             left+=1
42     array[mid]=tmp
43     return mid
44 
45 # def qSort(array,left,right):
46 #     mid=(left+right)//2
47 #     tmp=array[mid]
48 #     aswap(array,right,mid)
49 #     b=left
50 #     for n in range(left,right):
51 #         if(tmp>array[n]):
52 #             aswap(array,n,b)
53 #             b+=1
54 #     aswap(array,b,right)
55 #     return b
56 
57 import time
58 if __name__=='__main__':
59     arr=[]
60     max=int(1e4)
61     for i in range(max):
62         arr.append(random.randint(0,max))
63     time1=time.thread_time()
64     QuickSort(arr,0,len(arr)-1)
65     time2=time.thread_time()
66     print(time2-time1)
67   

名字起的很随意,不是很规范,注释里是另外一种写法...但好像没有看着复杂的速度快

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄