常用算法
lowb三人组
冒泡排序:
# 当前结果是从大到小,若想从小到大排序,将a[j] < a[j+1] 改为 a[j] > a[j+1] 即可
a = [1,4,2,5,22,3]
n = len(a)
for i in range(1,n):
for j in range(n-i):
if a[j] < a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
print(a)
选择排序:
# 当前结果是从大到小,若想从小到大排序,将a[min] < a[j] 改为 a[min] > a[j] 即可
a = [1,4,2,5,22,3]
n = len(a)
for i in range(1,n):
min = i-1
for j in range(i,n):
if a[min] < a[j]:
min=j
if min != i-1:
a[min],a[i-1] = a[i-1],a[min]
print(a)
插入排序:
def insertionSort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >=0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
arr = [12, 11, 13, 5, 6]
insertionSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i])