PHP 는 네 가지 기본 정렬 알고리즘 의 실행 시간 비교(추천)

많은 사람들 이 알고리즘 이 프로그램의 핵심 이 고 알고리즘 의 좋 고 나 쁨 이 프로그램의 질 을 결정 한다 고 말한다.초급 phoper 로 서 알고리즘 에 대한 접근 은 드 물 지만.그러나 기본 적 인 정렬 알고리즘 은 프로그램 개발 에 필수 적 인 도구 이다.다음은 본 고 를 통 해 PHP 가 네 가지 기초 정렬 알고리즘 을 실현 하 는 운행 시간 을 비교 해 보 겠 습 니 다.
 잔말 말고 바로 코드 를 붙 여 드 리 겠 습 니 다.
구체 적 인 코드 는 다음 과 같다.

/**
* php               
* @authors Jesse ([email protected])
* @date 2016-08-11 07:12:14
*/
//     
function bubbleSort($array){
$temp = 0;
for($i = 0;$i < count($array) -1;$i++){
for($j = 0;$j < count($array) - 1 -$i;$j++){
if($array[$j] > $array[$j+1]){ //      
$temp = $array[$j];
$array[$j] = $array[$j+1];
$array[$j+1] = $temp;
}
}
}
}
//     
function selectSort($array){
$temp = 0;
for($i = 0;$i < count($array) - 1;$i++){
$minVal = $array[$i]; //  $i     
$minValIndex = $i;
for($j = $i+1;$j < count($array);$j++){ 
if($minVal > $array[$j]){ //      
$minVal = $array[$j]; //    
$minValIndex = $j;
}
}
$temp = $array[$i];
$array[$i] = $array[$minValIndex];
$array[$minValIndex] = $temp;
}
}
//     
function insertSort($array){ //      
//   $array[0],    ,     
for($i = 1;$i < count($array);$i++){
$insertVal = $array[$i]; //$insertVal       
$insertIndex = $i - 1; //             
while($insertIndex >= 0 && $insertVal < $array[$insertIndex]){
$array[$insertIndex + 1] = $array[$insertIndex]; //      
$insertIndex--; //      ,          
}
if($insertIndex + 1 !== $i){
$array[$insertIndex + 1] = $insertVal; 
}
}
}
//     
function quickSort($array){
if(!isset($array[1]))
return $array;
$mid = $array[0]; //            ,       
$leftArray = array(); 
$rightArray = array();
foreach($array as $v){
if($v > $mid)
$rightArray[] = $v; //  $mid          
if($v < $mid)
$leftArray[] = $v; //  $mid           
}
$leftArray = quickSort($leftArray); //              
$leftArray[] = $mid; //              ,      
$rightArray = quickSort($rightArray); //              
return array_merge($leftArray,$rightArray); //      
}
$a = array_rand(range(1,3000), 1600); //  1600        
shuffle($a); //       
$t1 = microtime(true);
bubbleSort($a); //    
$t2 = microtime(true);
echo "      :".(($t2-$t1)*1000).'ms'."
"; $t3 = microtime(true); selectSort($a); // $t4 = microtime(true); echo " :".(($t4-$t3)*1000).'ms'."
"; $t5 = microtime(true); insertSort($a); // $t6 = microtime(true); echo " :".(($t6-$t5)*1000).'ms'."
"; $t7 = microtime(true); quickSort($a); // $t8 = microtime(true); echo " :".(($t8-$t7)*1000).'ms';
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 PHP 가 네 가지 기초 정렬 알고리즘 의 운행 시간 을 비교 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기