[算法]插入排序

参考:http://baike.baidu.com/view/1443814.htm

1.无序数组升序排序.(无插入)

int a[MAXLENGTH]={1,7,9,2,5,3,8,6,4,10};

for(int i=1;i<MAXLENGTH;i++){

   int t=a[i];//待插入的数

   int j=i;     //待插入的位置

 while(j>0 &&a[j-1]>t){  //当前面的数字更大的时候

       a[j]=a[j-1]

      a[j-1]=t  //插入到小一位

       j--      //继续跟前面比较

}

}

}

}

2.已有升序(降序)的数组,插入数据后依然升序(降序)

int a[10]={1,2,3,4,6,7,8,9,10};

printf("input number:\n");

scanf("%d",&n); 

for(int i=0; i<9;i++){

  if(n>a[i]){

   for(int s=8;s>=i;s--){

     a[s+1]=a[s]; //往后移,指导i位置

    

}

}

break;

 

}

 

 

 

posted @ 2013-03-20 20:40  金建彤  阅读(120)  评论(0编辑  收藏  举报