插入排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序相关的知识,希望对你有一定的参考价值。
插入排序是一种简单的排序算法,由于每一个嵌套循环都花费N次迭代,因此插入排序的时间复杂度为O(N^2)。
编码实现并测试:
#include <iostream>
#include <vector>
using namespace std;
template <typename Comparable>
void insertionSort( vector<Comparable> &a )
{
int j;
for ( int p = 1 ; p < a.size() ; p++ ){
Comparable tmp = a[p]; //保存当前元素值
for ( j = p ; j > 0 && tmp < a[j - 1] ; j-- ) //通过循环将位置p之前比p大的元素都向右移一格
a[j] = a[j - 1];
a[j] = tmp; //最后在适当的位置插入元素值.
}
}
int main()
{
cout << "请输入一些数据:" << endl;
vector<int> vec;
int temp;
while ( cin >> temp )
vec.push_back( temp );
insertionSort( vec );
cout << "按降序排列过的数据如下:" << endl;
vector<int>::iterator iter = vec.begin();
while( iter != vec.end() )
cout << *iter++ << endl;
return 0;
}
以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章
代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?
将代码片段插入数据库并在 textarea 中以相同方式显示
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段