# 数据结构与算法
# 排序算法 -- 插入排序
# 插入排序的适用场景:一个新元素需要插入到一组已经是有序的数组
# 中,或者是一组基本有序的数组排序。
#
# 比较性:排序时元素之间需要比较,所以为比较排序
#
# 稳定性:从代码我们可以看出只有比较元素大于当前元素,比较元素
# 才会往后移动,所以相同元素是不会改变相对顺序
#
# 时间复杂度:插入排序同样需要两次循坏一个一个比较,故时间复杂
# 度也为O(n^2)
#
# 空间复杂度:只需要常数个辅助单元,所以空间复杂度也为O(1)
#
# 记忆方法:想象成在书架中插书:先找到相应位置,将后面的书往后推,
# 再将书插入
def insert_sort(alist):
for i in range(1,len(alist)):
for j in range(i,0,-1):
if alist[j] < alist[j-1]:
alist[j-1], alist[j] = alist[j], alist[j-1]
else:
break
lis = [3,2,5,7,2,8,8,3,44,75,3]
insert_sort(lis)
print(lis)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)