
为了确保插入后的数据仍然有序,需要确定插入数据的位置。
1、将待排序的数据分为两个区间。
有序范围和无序范围。初始有序范围只包含一个元素,即数组的第一个元素,其他元素是无序范围。
2、从无序范围中依次选择元素,在有序范围内找到合适的插入位置,确保排序范围内的数据始终有序。
3、重复这个过程。
算法结束,直到无序范围的元素为空。
实例
#encoding=utf-8
definsert_sort(data_list):
'''
无优化版
'''
count=0#统计循环次数
length=len(data_list)
foriinrange(1,length):#默认情况下,第一个位置的元素是排序区间,因此,从1开始下标
tmp=data_list[i]#要插入的数据
j=i
whilej>0:#从排序区间找到插入位置
count+=1
iftmp<data_list[j-1]:
data_list[j]=data_list[j-1]#元素向后移动,腾出插入位置
else:
break
j-=1
data_list[j]=tmp#插入操作
print(data_list)
print(f"总循环次数为{count}")
returndata_list以上是python插入排序的操作过程,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。