基础算法之插入排序Insertion Sort
原理
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。相信大家都打过扑克牌,很好理解。
例子
将数组[5,6,3,1,8,7,2,4]进行从小到大排序
排序步骤:
|
动画演示
代码参考
static void Main(string[] args){int[] intArray = { 3, 6, 4, 2, 5, 1 };Insertion_Sort(intArray);foreach (var item in intArray){Console.WriteLine(item);}Console.ReadLine();}static void Insertion_Sort(int[] unsorted){int i, j, temp;for (i = 1; i < unsorted.Length; i++){// 检查有无序状态if (unsorted[i-1] > unsorted[i]){temp = unsorted[i];// 移位for (j = i; j > 0 && unsorted[j - 1] > temp; j--){unsorted[j] = unsorted[j - 1];}// 强势插入unsorted[j] = temp;}}}
参考资料
维基百科http://en.wikipedia.org/wiki/Insertion_sort
转载于:https://www.cnblogs.com/jackbase/p/4277335.html
基础算法之插入排序Insertion Sort相关推荐
- [转载] python实现基本算法之插入排序(Insertion Sort)
参考链接: Python中的插入排序insertion sort 基本算法之插入排序(Insertion Sort) 基本算法-02.插入排序(Insertion Sort)算法 冒泡排序已经发布,大 ...
- python实现排序算法_python实现·十大排序算法之插入排序(Insertion Sort)
简介 插入排序(Insertion Sort)是一种简单直观的排序算法.它的工作原理是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法实现步骤 从第一个元素开 ...
- python sort 逆序_python实现·十大排序算法之插入排序(Insertion Sort)
简介 插入排序(Insertion Sort)是一种简单直观的排序算法.它的工作原理是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法实现步骤 从第一个元素开 ...
- C语言插入排序Insertion Sort算法(附完整源码)
插入排序Insertion Sort算法 插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 插入排序Insertion Sort算法的完整源码(定义,实现,main函 ...
- C语言以递归实现插入排序Insertion Sort算法(附完整源码)
以递归实现插入排序Insertion Sort算法 以递归实现插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 以递归实现插入排序Insertion Sort算法的完 ...
- 插入排序(Insertion Sort)-Java实现
插入排序(Insertion Sort)算法简介: 插入排序是一种丛序列左端开始依次对数据进行排序的算法.在排序过程中,左侧的数据陆续归位,而右侧留下的就是还未被排序的数据. 插入排序(Inserti ...
- 插入排序(Insertion Sort)
维基百科:http://zh.wikipedia.org/wiki/插入排序 算法思想: 若数组A[n]的前n-1个数已经有序,我们只需把第n个元素插入到适当的位置即可.易分析得算法的时间复杂度为Ο( ...
- 插入排序Insertion sort 2
原理类似桶排序,这里总是需要10个桶,多次使用 首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数 例如 待排序数组[62,14,59,88,16]简单点五个数字 分 ...
- 基础算法之快速排序Quick Sort
原理 快速排序(Quicksort)是对冒泡排序的一种改进. 从数列中挑出一个元素,称为"基准"(pivot); 排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的 ...
- 九大经典算法之插入排序、希尔排序
01 插入排序(Insertion Sort) 原理:每次选择一个元素,并且将这个元素和整个数组中的所有元素进行比较,然后插入到合适的位置. void insertion_sort(int arr[] ...
最新文章
- Python 键盘鼠标监听
- 如何实现页面的响应式布局?
- 在看完《Programming in Lua》之后
- 数据中心机房谐波治理
- VTK:PolyData之RemoveVertices
- 从按下电源开关到bash提示符
- 如何在 ASP.NET Core MVC 5 中处理未知的 Action
- .net数据源控件绑定mysql_理解asp.net中DropDownList编辑数据源,绑定数据库数据。...
- C#LeetCode刷题之#674-最长连续递增序列( Longest Continuous Increasing Subsequence)
- 计算机发展史的内容概述,计算机及其发展史概述
- 《大型数据库技术》MySQL数据库安装配置及基础使用
- HDU 6183 2017广西邀请赛:Color it(线段树)
- 表单元素设置disabled后 支持点击事件
- Allegro gerber文件路径设定
- c语言调用aida64温度,关于aida64软件cpu温度的问题
- java求100以内偶数和
- python处理页眉_【python-docx 05】操作页眉和页脚
- Python -- 创建数字列表
- 计算机中b代表的含义是什么意思,表示文件大小的MB,KB,B等是什么意思?
- java毕业生设计在线教学质量评价系统计算机源码+系统+mysql+调试部署+lw