冒泡排序
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,17,77,31,44,55]
print(li)
bubble_sort(li)
print(li)
归并排序
import time
def merge_sort(alist):
start=time.clock()
n=len(alist)
if(n<=1):
return alist;
mid=n//2
left_list=merge_sort(alist[:mid])
right_list=merge_sort(alist[mid:])
left_pointer,right_pointer=0,0
result=[]
while(left_pointer<len(left_list) and right_pointer<len(right_list)):
if(right_list[right_pointer]<left_list[left_pointer]):
result.append(right_list[right_pointer])
right_pointer+=1
else:
result.append(left_list[left_pointer])
left_pointer+=1
result+=left_list[left_pointer:]
result+=right_list[right_pointer:]
end=time.clock()
print(end-start)
return result
if __name__=="__main__":
list=[54,26,93,17,77,31,44,55,20]
print(list)
sorted_alist=merge_sort(list)
print(sorted_alist)
插入排序
def insert_sort(alist):
n=len(alist)
for j in range(1,n):
i=j
while i>0:
if alist[i]<alist[i-1]:
alist[i],alist[i-1]=alist[i-1],alist[i]
i-=1
else:
break
if __name__=="__main__":
li=[54,26,93,17,77,31,44,55]
print(li)
insert_sort(li)
print(li)
还有其他排序方法再更新