1.冒泡排序法
import random
def bubble_sort(li): #时间复杂度o(n的平方)
for i in range(len(li)-1): #第i趟
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=[random.randint(0,100) for i in range(10)]
print(li)
bubble_sort(li)
print(li)
2.选择排序法
import random
def select_sort_simple(li):
li_new=[]
for i in range(len(li)):
min_val=min(li)
li_new.append(min_val)
li.remove(min_val)
return li_new
li=[random.randint(0,100) for i in range(10)]
print(li)
print(select_sort_simple(li))
def select_sort(li):
for i in range(len(li)-1):
mic_log=i #定义无序区初使位置
for j in range(i+1,len(li)):
if li[j] < li[mic_log]:
mic_log=j
if mic_log!=i:
li[i],li[mic_log]=li[mic_log],li[i]
return li
li=[random.randint(0,100) for i in range(10)]
print(li)
print(select_sort(li))
3.插入排序法
import random
def insert_sort(li):
for i in range(1,len(li)):
temp=li[i]
j =i -1 #已排好的最好一张牌的index
while j >=0 and li[j]>temp:
li[j+1]=li[j]
j-=1
li[j+1]=temp
return li
li=[random.randint(0,100) for i in range(10)]
print(li)
print(insert_sort(li))