1. 选择排序
基本原理:对于给定的一组记录,第一轮选择最小(大)值,与第一条记录进行交换。然后从剩余元素中,找出最小(大)值,与第二条记录进行交换,知道记录中未排序元素个数为0.该算法时间复杂度为O(n^2)
def sort_quickly(data):
n = len(data)
for i in range(n):
tmp = i
for j in range(i+1, n):
if data[tmp] > data[j]:
tmp = j
max = data[tmp]
data[tmp] = data[i]
data[i] = max
print(data)
2. 插入排序
基本原理: 将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表.该算法最好时间复杂度为O(n),最坏为O(n^2).
def sort_insert(data):
n = len(data)
for i in range(1, n):
tmp = data[i]
j = i - 1
while j >= 0:
if data[j] > tmp:
data[j+1] = data[j]
data[j] = tmp
j -= 1
print(data)
3. 冒泡排序
基本原理:比较相邻的元素,根据比较结果就交换个。 对每一对相邻元素做同样