码迷,mamicode.com
首页 > 其他好文 > 详细

插入排序

时间:2014-05-30 23:17:07      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:c   style   a   int   数据   算法   

今天复习了一下数据结构的插入排序,下面是算法和自己的一些理解

void charu(int *a,int length)
{
 int i,j,t;
 for( i=1;i<length;i++)//将第一个数子看为有序的数组,从第二个数开始依次插入
 {
  t=a[i];//将要插入的数记录下来,防止前面的数后移而丢失
  if(a[i]<a[i-1])//判断下一个要插入的数是否大于它的前一个数,如果大于的话,则不必执行for循环,因为前面的都已有序
  {
      for( j=i-1;t<a[j];j--)//让数组下标指向要插入数(t)的前一个数,如果前一个数逆序(即前一个数比要插入的数大),则让前一个数后移一位,数组下标继续向前,直到退出循环,此时的话,前一个数小于要插入的数,后一个数大于要插入的数,此时的位置便是要插入的位置
      {
       a[j+1]=a[j];//数组后移
      }
      a[j+1]=t;//将t插入要插入的位置,因为最后一部j已经减1,所以j+1才是要插入的位置
  }
 }
}

插入排序,布布扣,bubuko.com

插入排序

标签:c   style   a   int   数据   算法   

原文地址:http://www.cnblogs.com/runninglzw/p/3759958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!