快速排序法的核心在于:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
#冒泡排序法
def bubling_sort(list):
for i in range(len(list)-1):
for j in range(len(list)-i-1):
if list[j] > list[j+1]:
list[j+1],list[j] = list[j],list[j+1]
print list
def sub_sort(list,low,high):
key = list[low]
while low <high:
if list[high] >= key:
high -= 1
else:
list[low] = list[high]
low += 1
list[high] = list[low]
list[low] = key
return low
#快速排序法
def quike_sort(list,low,high):
if low < high:
key_index = sub_sort(list,low,high)
quike_sort(list,low,key_index)
quike_sort(list,key_index+1,high)
if __name__ == "__main__":
list = [12,56,84,3,63,37,43,2,66,90,21,44]
# bubling_sort(list)
quike_sort(list,0,len(list)-1)
print list