排序算法------插入排序

思路

  从第一个位置上开始,每一次选取一个该位置上的数与前面(前一位)的数进行大小比较,如果前面的数大于选取的这个数,则把前面的数往后移动(将前面的数值赋值到当前位置上),然后继续拿选取的这个数与前前一个数值比较大小,如果前前的数依然大于选取数的值,则将前前一位数的值付给前一位上,按照此法依次比较,直到选取的数大于某个位置上的数,则将选取的这个数放到小于这个数的后面。

function insertSort($arr){
  for($i=1;$i<count($arr);$i++){
    $tmp=$arr[$i];
    $key=$i-1;
    while($key>=0 && $tmp<$arr[$key]){
      $arr[$key+1]=$arr[$key];
      $key--;
    }
    if(($key+1)!=$i){
      $arr[$key+1]=$tmp;
    }
  }
  return$arr;
}

 

posted @ 2016-04-29 16:36  rcj_飞翔  阅读(90)  评论(0)    收藏  举报