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; }