插入排序(Insertion sort)

插入排序(Insertion sort)是一种简单直观且稳定的排序算法

算法原理:

它的原理是 每插入一个数 都要将它 和 之前的 已经完成排序的序列进行重新排序,也就是要找到新插入的数对应原序列中的位置。那么也就是说,每次插入一个数都要对原来排序好的那部分序列进行重新的排序,时间复杂度同样为O(n²)。 这种算法是稳定的排序方法。

举例:

      第一趟排序:取出第2个数据10,与第1个数据排序      [1,10 | 35,61,89,36,55]

      第二趟排序:取出第3个数据35,与前2数据排序    [1,10, 35 | 61,89,36,55]

      第三趟排序:取出第4个数据61,与第3个数据排序   [1,10,35,61 | 89,36,55]

      第四趟排序:取出第5个数据89,与第4个数据排序  [1,10,35,61,89 | 36,55]

      第五趟排序:取出第6个数据36,与第5个数据排序    [1,10,35,36, 61,89 | 55]

      第六趟排序:取出第7个数据55,与第6个数据排序    [1,10,35,36,55,61,89]

      第一趟总共进行了六次比较,排序结果: [1,10,35,36,55,61,89]

代码:

def insert_sort(list):
  for i in range(1,Length):                   #默认第一个元素已经在有序序列中,从后面元素开始插入    
      for j in range(i,0,-1):                 #逆向遍历比较,交换位置实现插入        
          if list[j] < list[j-1]:            
              list[j],list[j-1] = list[j-1],list[j]
print('after sort:',list)
powered by Bornforthi.comFile Modify: 2021-09-17 15:06:15

results matching ""

    No results matching ""