选择排序和插入排序与我们上一篇博客讲的冒泡排序在实践复杂度上相近,都是效率比较低的排序算法。这里提供两者的python3代码,具体的算法原理待以后补充:
__author__ = "Allen Liu"
__time__ = "2017/8/13"
'''This program used to '''
import random
# 选择排序
def select_sort(li):
for i in range(len(li) - 1):
temp = i
for j in range(i + 1, len(li)):
if li[temp] > li[j]:
temp = j
li[temp], li[i] = li[i], li[temp]
#插入排序
def insert_sort(li):
for i in range(1, len(li)):
temp = i
j = i - 1
while j >= 0 and li[j] > li[temp]:
li[temp], li[j] = li[j], li[temp]
temp = j
j -= 1
data = list(range(10))#产生一个有序列表
random.shuffle(data) # 调用shuffle函数打乱顺序
print(data)# 排序前
select_sort(data)# 调用选择排序算法
print(data)#排序后
random.shuffle(data)
print(data)# 排序前
insert_sort(data)# 调用插入排序算法
print(data)#排序后