插入排序

算法流程(从小到大排):

1.首先将第一个数看成一个有序序列,第二到最后一个数看成无序序列;

2.从无序序列中抽到一张手牌,并将其与有序序列比较;

3.将手牌插入到有序序列的合适位置

4.重复2,3步骤

1 def insert_sort(arr):
2     for i in range(len(arr)):
3         current = arr[i]  #抽到的
4         sorted_index = i - 1
5         while sorted_index >= 0 and current < arr[sorted_index]:
6             arr[sorted_index+1] = arr[sorted_index] #已排序的序列往后移才有插入的空间
7             sorted_index -= 1
8         arr[sorted_index+1] = current

时间复杂度O(n2)

上一篇:算法——鸡尾酒排序python版


下一篇:2021-05-18 SONiC 系统管理 37