插入排序
新手上路, 多多关注, 这真的对我很重要
插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴, 但它的原理应该是最容易理解的了, 因为只要打过扑克牌的人都应该能够秒懂. 当然, 如果你说你打扑克牌摸牌的时候从来不按牌的大小整理牌, 那估计这辈子你对插入排序的算法都不会产生任何兴趣了.....
算法简介
插入排序 (Insertion-Sort) 的算法描述是一种简单直观的排序算法. 它的工作原理是通过构建有序序列, 对于未排序数据, 在已排序序列中从后向 前扫描, 找到相应位置并插入. 插入排序在实现上, 通常采用 in-place 排序 (即只需用到 O(1) 的额外空间的排序), 因而在从后向前扫描过程中, 需要 反复把已排序元素逐步向后挪位, 为最新元素提供插入空间.
新手上路, 多多关注, 这真的对我很重要
算法描述和实现
一般来说, 插入排序都采用 in-place 在数组上实现. 具体算法描述如下:
从第一个元素开始, 该元素可以认为已经被排序;
取出下一个元素, 在已经排序的元素序列中从后向前扫描;
如果该元素 (已排序) 大于新元素, 将该元素移到下一位置;
重复步骤 3, 直到找到已排序的元素小于或者等于新元素的位置;
将新元素插入到该位置后;
重复步骤 2~5.
实现代码
测试结果
新手上路, 多多关注, 这真的对我很重要
来源: http://www.jianshu.com/p/3058097575bd