Python实现插入排序

定义:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

  1. 从第一个元素开始,该元素可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到该位置后
  6. 重复步骤2~5

流程图:

python 代码实现:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File        :InsertionSort.py
@Description :
@CreatTime   :2020/08/20 16:39:30
@Author      :Yunhgu
@Version     :1.0
'''


def InsertionSort(array):
    for i in range(1,len(array)):
        preIndex = i-1
        current = array[i]
        while preIndex>=0 and array[preIndex]>current:
            array[preIndex+1]=array[preIndex]
            preIndex-=1
        array[preIndex+1] = current
    return array

    
if __name__ == "__main__":
    int_list = [8, 6, 4, 7, 5, 2, 3, 9, 4]
    I = InsertionSort(int_list)
    print(I)

 

posted @ 2020-08-26 10:28  不能说的秘密  阅读(365)  评论(0编辑  收藏  举报