关于排序算法之插入排序

      插入排序的算法虽然简单,但是很多时候,笔试时,往往几个简单算法,很容易让人头疼。况且,如何又简单、又快速写出代码,这个才是关键。所以,这几天重温了这几个算

法,整理了一下,方面今后查阅。

      插叙算法的思路很简单,就是不断从无序区间中取出元素,插入到有序区间中去,并且不断调整有序区间。大概代码如下:

     

 1 void SelectSort::InsertSort()                //插入排序
 2 {
 3     int temp,j;
 4     for(int i=0;i < int(SelectArry.size()-1);i++)  //i代表有序区间数组第i个元素
 5      { 
 6          j = i+1;                                  //j代表无序区间数组第1个元素
 7          if( SelectArry[j] < SelectArry[i])        //无序区间数组第1个元素比较小,需要对有序区间调整
 8          {
 9              temp = SelectArry[j];                 //记录临时变量
10              while( i>=0 && temp <  SelectArry[i]) //寻找有序区间中的插入位置
11               {
12                 SelectArry[i+1] = SelectArry[i];
13                 i--;
14               }
15            SelectArry[i+1] = temp;                 //将无序区间的元素插入
16          }
17          i = j-1;                                  //还原i,继续进行循环
18     }
19          
20 }

      由于是用类来写的,SelectArry数组封装在类中,其中SelectAtty数组的定义是vector<int>;
      转载请注明出处:http://www.cnblogs.com/Su-30MKK/archive/2012/11/05/2756172.html

转载于:https://www.cnblogs.com/Su-30MKK/archive/2012/11/05/2756172.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值