PHP算法----插入排序

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

你可能感兴趣的:(PHP算法和数据结构)