三种基本排序算法的python实现:选择排序、冒泡排序以及插入排序
附上python代码:
# 三种排序算法
'''选择排序法
搜索整个列表找到最小值的项,最小项如果不是第一项那么就与第一项交换;
然后,算法到第二个位置,重复这一过程,有必要的话再与第二项交换。以此类推。
'''
def selectsort(lyst):
for i in range(len(lyst)-1):
minIndex=i
for j in range(i+1,len(lyst)):
if lyst[j]<lyst[minIndex]:
minIndex=j
if minIndex!=i:
lyst[i],lyst[minIndex]=lyst[minIndex],lyst[i]
return lyst
a=[7,4,8,3,4,2,0]
selectsort(a)
'''冒泡排序法
从头开始比较相邻两项的大小,如果相邻两项顺序不正确则交换,一次遍历后最大值在最后一位。
如此遍历n-1次,得到排序好的列表'''
def bubblesort(lyst):
n=len(lyst)
for x in range(n-1): # 进行n-1次循环
for i in range(n-1-x): # 从0到n-x-1需要比较
if lyst[i]>lyst[i+1]:
lyst[i],lyst[i+1]=lyst[i+1],lyst[i]
return lyst
b=[7,4,8,3,4,2,0]
bubblesort(b)
'''插入排序
'''
def insertsort(lyst):
for i in range(1,len(lyst)):
val=lyst[i]
j=i-1
while j>=0:
if val<lyst[j]:
lyst[j+1]=lyst[j]
j-=1
else:
break
lyst[j+1]=val
return lyst
c=[7,4,8,3,4,2,0]
insertsort(c)