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 가 네 가지 기초 정렬 알고리즘 의 운행 시간 을 비교 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.