1、冒泡排序
在数组x[n]中,从第一个数开始,拿x[i]和后面的数x[i+1]进行比较,如果x[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好像冒泡一样,故取名冒泡排序。
# 时间复杂度O(n²)
def bubblesort(listx):
Lx=len(listx)
for i in range(Lx-1): #遍历n-1遍
for j in range(Lx-1-i): #每次遍历交换n-1-i次
if listx[j]>listx[j+1]:
listx[j],listx[j+1]=listx[j+1],listx[j] #两个数交换
return listx
if __name__ =='__main__':
lista=[5,8,3,0,6]
print(bubblesort(lista))
2、插入排序
将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数。
# 时间复杂度O(n²)
def insertsort(listx):
Lx=len(listx)
print(Lx)
for i in range(1,Lx): #遍历n-1遍
j=i-1
while j>=0:
if listx[j]>listx[j+1]:
listx[j],listx[j+1]=listx[j+1],listx[j]
j-=1
print(j)
else:
break
return listx
if __name__ =='__main__':
lista=[1,9,5,8,3,0,6]
print(insertsort(lista))