为了确保插入后的数据仍然有序,需要确定插入数据的位置。
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电脑。