版权声明:所有代码均为自己总结,若有雷同请勿模仿 https://blog.csdn.net/weixin_44253023/article/details/90180755
一、冒泡排序
def bubble_sort(li):
for i in range(0,len(li)-1):
for j in range(len(li)-i-1):
if li[j]>li[j+1]:
li[j],li[j+1]=li[j+1],li[j]
return li
"""
i代表比较的躺数,j代表每趟比较的次数,每次相邻的两个数进行大小比较,
若前一个数大于后一个数,则进行交换。
这种方法称为:“冒泡排序法”
"""
其实冒泡排序是可以优化的
冒泡排序的优化
def bubble_sort(li):
for i in range(0,len(li)-1):
exchange=False
for j in range(len(li)-i-1):
if li[j]>li[j+1]:
li[j],li[j+1]=li[j+1],li[j]
exchange=True
if not exchange:
return li
二、选择排序
def select_sort(li):
for i in range(len(li)-1):
min_loc=i
for j in range(i+1,len(li)):
if li[j]<li[min_loc]:
li[j],li[min_loc]=li[min_loc],li[j]
return li
#i是比较进行的躺数,j是比较的次数
#在每趟中取出一个最小(大)值,从而得到一个有序数列
三、插入排序
def insert_sort(li):
for i in range(1,len(li)):
j=i-1
tmp=li[i]
while j>=0 and li[j]>tmp:
li[j+1]=li[j]
j-=1
li[j+1]=tmp
return li
#在这可以把插入排序理解为抓牌,每抓一张然后放到它该在的地方
i抓牌次数
j比较次数,放到它应该放的地方