冒泡排序
def bubbleSort(alist):
for passnum in range(len(alist)-1, 0, -1):
for i in range(passnum): # n-1趟
if alist[i] > alist[i+1]:
temp = alist[i] # 交换
alist[i] = alist[i+1]
alist[i+1] = temp
# python支持直接交换
# alist[i],alist[i+1] = alist[i+1],alist[i]
testlist = [54,26,93,17,77,31,44,55,20]
bubbleSort(testlist)
print(testlist)
def bubbleSort(alist):
exchanges = True
passnum = len(alist)-1
while passnum > 0 and exchanges:
exchanges = False
for i in range(passnum): # n-1趟
if alist[i] > alist[i+1]:
exchanges = True
temp = alist[i] # 交换
alist[i] = alist[i+1]
alist[i+1] = temp
passnum = passnum-1
testlist = [54,26,93,17,77,31,44,55,20]
bubbleSort(testlist)
print(testlist)
选择排序
def selectionSort(alist):
for fillslot in range(len(alist)-1, 0, -1):
positionOfMax = 0
for location in range(1, fillslot+1):
if alist[location] > alist[positionOfMax]:
positionOfMax = location
temp = alist[fillslot]
alist[fillslot] = alist[positionOfMax]
alist[positionOfMax] = temp
testlist = [54,26,93,17,77,31,44,55,20]
selectionSort(testlist)
print(testlist)
插入排序
def insertionSort(alist):
for index in range(1,len(alist)):
currentvalue = alist[index] # 插入项
position = index
while position>0 and alist[position-1]>currentvalue:
alist[position] = alist[position-1] # 对比和移动
position = position-1
alist[position] = currentvalue # 插入信项