插入排序-PHP


$arr = array(4,2,5,1,3);
function insertSort($arr) {
    $len = count($arr); // 元素总数
    for ($i=1; $i<$len; $i++) { // 正常遍历
        $tmp = $arr[$i]; // 获取当前元素
        for ($j=$i-1; $j>=0; $j--) { //将当前元素,和之前已拍好序的数据进行比较,所以是递减
            if ($tmp < $arr[$j]) { // 若当前元素小于之前元素(已排好序的),则交换位置
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $tmp;
            } else { // 否则跳过循环,因前面的都已排好序
                break;
            }
        }
    }
    return $arr;
}
$res = insertSort($arr);
print_r($res);

Array
(
  [0] => 1
  [1] => 2
  [2] => 3
  [3] => 4
  [4] => 5
)

 

posted @ 2021-03-21 22:44  蓝晓焰  阅读(24)  评论(0编辑  收藏  举报