一、冒泡排序:
nums = [1,3,2,5,4,9,6]
def bubbleSort(alist):
n = len(alist)
for passnum in range(n-1,-1,-1):
for i in range(passnum):
if alist[i] > alist[i+1]:
alist[i],alist[i+1] = alist[i+1],alist[i]
return alist
print(bubbleSort(nums))
改进:提前排好序就停止
def shortBubbleSort(alist):
n = len(alist)
right = n-1
exchange = True
while right < 0 and exchange:
flag = False
for i in range(right):
if alist[i+1] < alist[i]:
flag = True
alist[i],alist[i+1] = alist[i+1],alist[i]
right -= 1
return alist
print(shortBubbleSort(nums))
二、选择排序:
def selectionSort(alist):
for i in range(len(alist)-1,0,-1):
pos = 0
for j in range(1,i+1):
if alist[pos] < alist[j]:
pos = j
alist[pos],alist[i] = alist[i],alist[pos]
return alist
print(selectionSort(nums))
三、插入排序:
def insertionSort(alist):
for index in range(1,len(alist)):
currentvalue = alist[index]
pos = index
while pos > 0 and alist[pos-1] > alist[pos]:
alist[pos] = alist[pos-1]
pos -= 1
alist[pos] = currentvalue
return alist
print(insertionSort(nums))
四、希尔排序
五、归并排序
六、快速排序