插入排序:在已经排好序的一组数中插入一个新的值,从而得到一个新的值。
插入排序的原理:一组有序数组,初始时定义一个第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插到有序序列中为止。
插入排序的时间复杂度是:O(n)
代码如下
<?php class Insert { public function insertSort($arr) { $count=count($arr); for($i=0;$i<$count-1;$i++){ for($j=$count-1;$j>$i;$j--){ if($arr[$i]>$arr[$j]){ list($arr[$j],$arr[$i])=[$arr[$i],$arr[$j]]; } } } return $arr; } } $arr=[1,5,8,6,7,9,3,4,2]; $obj=new Insert(); $data=$obj->insertSort($arr); print_r($data);die; ?>