排序算法之插入排序
2017-08-17 12:23
561 查看
1. 算法:
插入排序(insertion sort)是最简单的排序算法之一。插入排序由N-1趟排序组成,对于P=1到P=N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态。
下图显示一个简单的数组([34,8,64,51,32,21])在每一趟插入排序后的情况:
代码块:
template<typename T>
void insert_sort(vector<T>&a){
int p,x,j;
for(p=1; p<a.size(); p++){
x=a[p];
for(j=p; j>0; j--){
if(a[j-1]>x)
a[j]=a[j-1];
else
break;
}
a[j]=x;
}
}2.分析:
由于嵌套循环的每一次都花费N次迭代,因此插入排序为O(N^2)
相关文章推荐
- 排序算法01-插入排序
- 用Python实现八大排序算法--插入排序
- 排序算法-插入排序
- 各种排序算法的实现-4(表插入排序-1)
- 简单的冒泡排序、插入排序、查找排序算法
- java 排序算法---插入排序
- 【排序算法1】Java实现冒泡、选择、插入排序
- 排序算法(一):插入排序(直接插入排序、希尔排序)
- 减治法在排序算法中的应用(JAVA)--插入排序
- 【排序算法】插入排序(C++实现)
- Java中的几种排序算法:冒泡排序,插入排序,二分法排序,简单排序,快速排序
- 排序算法之插入排序
- 排序算法总结之插入排序、选择排序
- 排序算法之插入排序
- 排序算法002-插入排序
- 排序算法-插入排序
- 排序算法,插入排序,通俗解释2
- 排序算法之插入排序
- 冒泡排序、插入排序、选择排序、希尔排序、堆排序、归并排序等常用排序算法的比较
- 排序算法之插入排序