冒泡排序:
def bubble_sort(alist): n=len(alist) for j in range(n-1): for i in range(0,n-1-j): # 从头走到尾 if alist[i]>alist[i+1]: alist[i],alist[i+1]=alist[i+1],alist[i] if __name__ =="__main__": li=[54,26,93,77,85,156,51,10,22,33,40] print(li) bubble_sort(li) print(li) #结果[54, 26, 93, 77, 85, 156, 51, 10, 22, 33, 40] #[10, 22, 26, 33, 40, 51, 54, 77, 85, 93, 156]
选择排序:
def slect_sort(alist): n=len(alist) for j in range(n-1): min_index=j for i in range(j+1,n): if alist[min_index]>alist[i]: min_index=i alist[j],alist[min_index]=alist[min_index],alist[j] if __name__ =="__main__": li=[54,26,93,77,85,156,51,10,22,33,40] print(li) slect_sort(li) print(li) #输出结果:[54, 26, 93, 77, 85, 156, 51, 10, 22, 33, 40] #[10, 22, 26, 33, 40, 51, 54, 77, 85, 93, 156]
希尔列表
def shell_sort(alist): n=len(alist) gap=n/2 while gap >0: for j in range(gap,n): i=j while i>0: if alist[i] < alist[i-gap]: alist[i],alist[i-gap] = alist[i-gap],alist[i] i-=gap else: break gap /=2 if __name__ =="__main__": li=[54,26,93,77,85,156,51,10,22,33,40] print(li) shell_sort(li) print(li)