算法学习(1):排序算法-插入排序及python实现
来源:互联网 发布:photoshop破解补丁mac 编辑:程序博客网 时间:2024/05/21 22:56
前言
插入排序应该是最容易想到的排序算法,其核心思想是:将待排序的序列看成两部分,以某一个元素为界,左边的是排好序的序列,右边是待排序的序列,每次读取边界上的一个元素,然后将它跟排序好的序列中的元素一个一个对比,然后排好序的元素依次挪出个空位,然后将这个元素插入到合适的位置,一直循环到序列结束。
插入排序很常见,比如:玩扑克牌时,抓牌的过程就是一个插入排序,每抓到一张牌,就将这张牌插入到手里排好序的牌中。怎么个插入法儿呢?比如你手里的牌是3、6、9,现在你抓到了一张8,你会先跟3比较,8比3大,把3往后挪一个位儿;再跟6比,8比6大,6也往后挪一个位儿;再跟9比,8比9小,9就不挪了,然后就把8放在挪出的空位上来。循环这个过程,手里的牌就是有序的。同样的例子还有按身高站队,也是一个一个比,然后一个一个挪位子,循环这个过程。
正文
下面的代码是python语言实现的插入排序算法
a=[234,2345,6,543,2346,34,6,2,56,146,776]print(a)for i in range(1,len(a)): j = i-1 tmp = a[i] while j>=0 and a[j]>tmp: a[j + 1] = a[j] j-=1 a[j+1] = tmpprint(a)
总结
插入排序的时间复杂度是:O(n^2)
插入排序的空间复杂度是:O(n)
插入排序的好坏极大地依赖于序列原始状态,如果起始无序,则效率很低。不适合大规模数据集的排序问题。
0 0
- 算法学习(1):排序算法-插入排序及python实现
- 算法导论学习-插入排序python实现
- python 实现插入排序算法
- Python 插入排序算法实现
- python实现排序算法三:插入排序
- 算法导论插入排序算法python实现
- python插入排序算法
- python插入排序算法
- Python插入排序算法
- Python:插入排序算法
- Python排序算法-插入排序
- 插入排序算法python和c实现
- 插入排序算法的python实现
- python实现的直接插入排序算法
- python里实现插入排序算法
- 排序算法(c实现)------- 插入排序
- 算法实现-->插入排序
- 插入排序算法实现
- Servler(2)
- 离散题目7
- ARDL模型笔记
- 最小的矩形
- 搭建git服务器和权限管理(git + gitolite)
- 算法学习(1):排序算法-插入排序及python实现
- 还是打印菱形
- Emacs的剪贴、复制和粘贴
- shell中的多进程【并发】
- 网络协议欺骗-ARP欺骗
- 北京大学ACM---poj3750---小孩报数问题(循环链表求解法)
- Java EE在Servlet中调用forward致使JSP页面中文乱码
- JavaWeb——AJAX(4)
- 1011. A+B和C (15)-PAT乙级