原创

算法之 插入排序 代码PHP版

定义排序函数

function insertion_sort($data = array())
{
    if(count($data) >= 2) {
        for($j=1; $j < count($data); $j++) {
            $key = $data[$j];
            $i = $j-1;
            while($i >= 0 && $data[$i] > $key) {
                $data[$i+1] = $data[$i];
                $i=$i-1;
            }
            $data[$i+1] = $key;
        }
    }

    return $data;
}

传入任意一个数组 返回升序排列的数组

因为使用了2次循环比较,时间复杂度 Θ(n²)

难点: while循环之后$i为-1 最后一项相当于 $data[0] = $key  仅个人理解供参考

 

(238)

Related Post