用python实现插入排序
2017-10-11 19:26
375 查看
一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
时间复杂度
最优时间复杂度:O(n) (升序排列,序列已经处于升序状态)
最坏时间复杂度:O(n2)
稳定性:稳定
def insertionSort(alist): for index in range(1,len(alist)): currentvalue = alist[index] position = index while position>0 and alist[position-1]>currentvalue: alist[position]=alist[position-1] position = position-1 alist[position]=currentvalue alist = [54,26,93,17,77,31,44,55,20] insertionSort(alist) print(alist)
时间复杂度
最优时间复杂度:O(n) (升序排列,序列已经处于升序状态)
最坏时间复杂度:O(n2)
稳定性:稳定
相关文章推荐
- Python实现 -- 冒泡排序、选择排序、插入排序
- python实现插入排序与选择排序
- 算法导论的python实现之插入排序
- python实现插入排序
- python3实现选择排序和插入排序
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- python实现shell排序(正宗的缩小增量插入排序)
- 插入排序_Python与PHP的实现版(推荐)
- python实现插入排序
- 排序法学习之插入排序(python3实现)
- 算法 排序 python 实现--插入排序
- Python实现插入排序
- python3实现冒泡排序和插入排序
- Python实现插入排序
- python实现基础排序算法之(插入排序)
- python实现插入排序
- python实现插入排序,选择排序
- 用Python实现八大排序算法--插入排序
- 用Python实现排序算法――插入排序
- python和C语言分别实现插入排序