1.插入排序
/**
* 插入排序
*
* @access public
* @param mixed $arr 随机数组
* @return array 排序完成的数组
*/
function insertionSort($arr){
$time_start = msectime();
for ($i=1; $i < count($arr) ; $i++) {
for ($j=$i; $j > 0 ; $j--) {
if($arr[$j]<$arr[$j-1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $temp;
}
}
}
$time_end = msectime();
var_dump($time_end-$time_start);
return $arr;
}
2.插入排序改进
function insertionSort($arr){
$time_start = msectime();
for ($i=1; $i < count($arr) ; $i++) {
for ($j=$i; $j > 0 && $arr[$j]<$arr[$j-1]; $j--) {
$temp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $temp;
}
}
$time_end = msectime();
var_dump($time_end-$time_start);
return $arr;
}
3.插入排序再改进
function insert_sort($arr){
$time_start = msectime();
for ($i=1; $i < count($arr) ; $i++) {
$e = $arr[$i];
for ($j=$i; $j > 0 && $arr[$j-1]>$e; $j--) {
$arr[$j] = $arr[$j-1];
}
$arr[$j] = $e;
}
$time_end = msectime();
var_dump($time_end-$time_start);
return $arr;
}