php-插入排序

//直接插入
function insert($arr)
{
   $n = count($arr); 
   if ($n < 2) return $arr;
   
   for ($i = 1;$i < $n;$i++) {
      $tmp = $arr[$i]; 
      $j = $i - 1;

      //大于的右移,找到插入的位置
      while ($j > -1 && $arr[$j] > $tmp) {
         $arr[$j+1] = $arr[$j];
         $j--; 
      }
      $arr[$j+1] = $tmp;
   }

   return $arr;
}

$arr = [9,7,4,3,6,8,5,2,1,10];
$res = insert($arr);
print_r($res);

 

你可能感兴趣的:(算法)