快速排序法的核心在于: 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