经典排序之插入排序
来源:互联网 发布:java半角正则表达式 编辑:程序博客网 时间:2024/05/29 12:15
一、插入排序
它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
插入排序的算法描述:
- 从第一个元素开始,该元素可以认为已经被排序
- 取出下一个元素,在已经排序的元素序列中从后向前扫描
- 如果该元素(已排序)大于新元素,将该元素移到下一位置
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
- 将新元素插入到该位置后
- 重复步骤2~5
下面看具体代码:
void insertion_sort(char array[], int first, int last) { int i,j; int temp; for (i = first+1; i<=last;i++) { temp = array[i]; j=i-1; //与已排序的数逐一比较,大于temp时,该数向后移 while((j>=first) && (array[j] > temp))//当first=0,j循环到-1时,由于[[短路求值]],不会运算array[-1] { array[j+1] = array[j]; j--; } array[j+1] = temp; //被排序数放到正确的位置 } }
- 经典排序之插入排序
- 经典排序之插入排序
- 经典排序之插入排序
- 经典排序之插入排序
- 经典排序之插入排序
- 经典排序之插入排序
- 经典算法之插入排序
- 经典算法之插入排序
- 经典排序算法之插入排序
- C--经典算法之排序---插入排序
- 经典算法学习:排序之插入排序
- 经典排序算法之直接插入排序
- 经典排序算法之插入排序
- 【排序算法】经典排序算法之插入排序
- 经典算法之二《插入排序》
- 面试经典算法2之插入排序
- java经典算法之插入排序
- 经典算法之折半插入排序
- python crawler(1)
- Oracle 游标使用全解
- .NET设计模式:建造者模式(Builder Pattern)
- adr与ldr区别(Mini2440裸机程序阐述)
- .NET设计模式:原型模式(Prototype Pattern)
- 经典排序之插入排序
- .NET十年(上)
- .NET十年(下)
- 七大.NET著名开源项目
- 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发
- 使用Jquery Easy UI要导入的js顺序
- C# .NET学习经验总结
- 手机相机自动同步到电脑
- C#基础概念25问