插入法排序

function InsertSort($arr){
  $num = count($arr);
  // 遍历数组
  for ($i = 1;$i < $num; $i++) {
    // 获得当前值
    $iTemp = $arr[$i];
    // 获得当前值的前一个位置
    $iPos = $i - 1;
    // 如果当前值小于前一个值切未到数组开始位置
    while (($iPos >= 0) && ($iTemp < $arr[$iPos])) {
      // 把前一个的值往后放一位
      $arr[$iPos + 1] = $arr[$iPos];
      // 位置递减
      $iPos--;
    }
    $arr[$iPos+1] = $iTemp;
  }
  return $arr;
}

原文地址:https://www.cnblogs.com/zhang0807/p/10329960.html