排序算法—插入排序(python)
来源:互联网 发布:中欧工程技术学院知乎 编辑:程序博客网 时间:2024/05/22 08:21
排序算法—插入排序(python)
对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入
插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
#!/usr/bin/env python# -*- coding: utf-8 -*-# Created by xuehz on 2017/8/22def insert_sort(alist): n = len(alist) # 从右边的无序 序列中取出多少个元素执行此过程 for j in range(1, n): # i 表示内层循环起始值 i = j # 执行从右边的无序序列中取出第一个元素:i 位置的元素 然后将其插入到前面的有序 序列中 while i > 0: if alist[i] < alist[i-1]: alist[i] , alist[i - 1] = alist[i - 1], alist[i] i -= 1 else: break return alistdef insert_sort1(alist): # 从第二个位置,即下标为1的元素开始向前插入 for i in xrange(1, len(alist)): for j in xrange(i, 0, -1): # 从第i个元素开始向前比较,如果小于前一个元素,交换位置 if alist[j] < alist[j - 1]: alist[j], alist[j - 1] = alist[j - 1], alist[j] return alistif __name__ == '__main__': li = [52,32,98,07,67] print li print insert_sort1(li)
时间复杂度
- 最优时间复杂度:O(n) (升序排列,序列已经处于升序状态)
- 最坏时间复杂度:O(n2)
- 稳定性:稳定
阅读全文
0 0
- 排序算法—插入排序(python)
- Python排序算法-插入排序
- python插入排序算法
- python插入排序算法
- Python插入排序算法
- Python:插入排序算法
- python 实现插入排序算法
- Python 插入排序算法实现
- 排序—插入排序算法
- 排序算法—插入排序
- Python算法 插入排序和堆排序
- python实现排序算法三:插入排序
- python 排序算法之---插入排序
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
- Python--排序--插入排序
- 算法导论插入排序算法python实现
- 排序算法-插入排序
- 排序算法--插入排序
- Mybatis-新增
- run in term
- Dinner 点餐
- 用 C 语言编写 Windows 服务程序的五个步骤
- Luogu 1282(dp)
- 排序算法—插入排序(python)
- HDU 6166 && 2017 多校训练:Senior Pan(最短路)
- Bootstrap fileinput.js Demo
- Linux 查看log文件
- ACM集训日记-8月22日
- git的基本使用
- C/C++中的参数传递
- SpringMVC详解(三)------基于注解的入门实例
- android开发-dialog与activity 屏蔽Home键详解