array=[2,8,7,1,3,5,6,4]
def quick_sort(array, l, r):
if l < r:
q = partition(array, l, r)
quick_sort(array, l, q - 1)
quick_sort(array, q + 1, r)
def partition(array, l, r):
x = array[r]
i = l - 1
for j in range(l, r):
if array[j] <= x:
i += 1
array[i], array[j] = array[j], array[i]
array[i + 1], array[r] = array[r], array[i + 1]
return i + 1
quick_sort(array,1,len(array)-1)
print(array)
array=[2,8,7,1,3,5,6,4]
def quick_sort(array, l, r):
if l < r:
q = partition(array, l, r)
quick_sort(array, l, q - 1)
quick_sort(array, q + 1, r)
def partition(array, l, r):
x = array[r]
i = l - 1
for j in range(l, r):
if array[j] <= x:
i += 1
array[i], array[j] = array[j], array[i]
array[i + 1], array[r] = array[r], array[i+1]
return i + 1
quick_sort(array,0,len(array)-1)
print(array)
mylist = [49,38,65,97,76,13,27,59]
def quick_sort(mylist,start,end):
if start<end:
i,j=start,end
base = mylist[i]
while i<j:
while(i<j) and (mylist[j]>=base):
j=j-1
mylist[i]=mylist[j]
while(i<j) and (mylist[i]<=base):
i=i+1
mylist[j]=mylist[i]
mylist[i]=base
quick_sort(mylist,start,i-1)
quick_sort(mylist,i+1,end)
return mylist
quick_sort(mylist,0,len(mylist)-1)
print(mylist)
https://www.cnblogs.com/Lin-Yi/p/7309143.html
归并排序:
def merge_sort(li):
if len(li)==1:
return li
mid = len(li)//2
left = li[:mid]
right = li[mid:]
le=merge_sort(left)
rl=merge_sort(right)
return merge(le,rl)
def merge(left,right):
result=[]
while len(left)>0 and len(right)>0:
if left[0]<=right[0]:
result.append(left.pop(0))
else:
result.append(right.pop(0))
result+= left
result+= right
return result
li = [2,8,4,1,3,5,6,7]
li2 = merge_sort(li)
print(li2)