算法导论:插入排序

 1 /*算法导论:P15 插入排序
2 * 使用方法:vector<T> vec, InsertSort(vec)
3 *
4 */
5 #include<vector>
6 #include<iterator>
7 using namespace std;
8 template<typename T>
9 void InsertSort(vector<T> &array)
10 {
11 //typename的作用是告诉c++编译器,typename后面的字符串为一个类型名称,而不是成员函数或者成员变量
12 //定义两个Vector的迭代器
13 typename vector<T>::iterator iter_temp1,iter_temp2;
14 T key;//临时变量保存
15 for(iter_temp1=array.begin()+1;iter_temp1!=array.end();iter_temp1++)
16 {
17 //先保存迭代数据
18 key=*iter_temp1;
19 for(iter_temp2=iter_temp1;iter_temp2 > array.begin() && key < *(iter_temp2-1);iter_temp2--)
20 {
21 //将比key大的数据向后移位,为key腾出位置
22 *iter_temp2=*(iter_temp2-1);
23 }
24 //将key放到正确的排序位置
25 *iter_temp2=key;
26 }
27 }
28 #include<iostream>
29 int main()
30 {
31 int a[12]={23,43,34,65,76,27,11,92,63,16,51,26};
32 vector<int> array(a,a+12);
33
34 InsertSort(array);
35 int i;
36 for(i=0;i<12;i++)
37 {
38 cout<<array[i]<<' ';
39 }
40 cout<<endl;
41 cin>>i;
42 }

转载于:https://www.cnblogs.com/shengansong/archive/2011/12/23/2299074.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值