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 @   不能说的秘密  阅读(372)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示