直接插入排序
直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。
实现过程
function insert_sort($arr){
for($i=1;$i<count($arr);$i++){
$x=$arr[$i];
for($j=$i-1;$j>=0&&$x<$arr[$j];$j=$j-1){
$arr[$j+1]=$arr[$j];
}
$arr[$j+1]=$x;
}
var_dump($arr);
}
或者
function insert_sort($arr) {
for($i=1;$i<count($arr); $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;
}
$arr=[3,6,1,7,2];
var_dump(insert_sort($arr));