定义排序函数
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 仅个人理解供参考
(239)