>  기사  >  백엔드 개발  >  PHP는 빠른 정렬 방법 함수 코드를 구현합니다.

PHP는 빠른 정렬 방법 함수 코드를 구현합니다.

高洛峰
高洛峰원래의
2016-12-01 10:29:521241검색

코드 1:
코드 복사 코드는 다음과 같습니다.
functionquicksort($str){
if(count($str)<=1) return $str; //숫자가 1보다 크지 않으면 직접 반환
$key=$str[0] //값을 가져와 나중에 비교에 사용
$left_arr=array();
$right_arr =array();
for($i=1;$iif( $str[$i]<=$key)
$left_arr[]=$str[$i]
else
$right_arr[]=$str[ $i];
$left_arr=quicksort($left_arr);//재귀 수행
$right_arr=quicksort($right_arr)
return array_merge($left_arr,array($key) ),$right_arr);// 왼쪽, 가운데, 오른쪽 값을 배열로 결합합니다
}//다음은 테스트입니다
$str=array(5,3,8,2,5; ,9,7,2,1,4,0) ;
print_r(quicksort($str))
?>

코드 복사 다음:
/* @quicksort*/
함수 QuickSort($left,$right,$arr){
$l = $left
$r =
$pivot; = $arr[($left+$right)/2];
$temp = 0

while($l<$r){
while($arr[$l]< $pivot){
$l++;
}
while($arr[$r]>$pivot){
$r--
}

if ($l>=$r) 중단;

$temp = $arr[$l]
$arr[$l] = $arr[$r]; r] = $temp;

if( $arr[$l]==$pivot) --$r
if($arr[$r]==$pivot) ++$l ;
}

if($ l==$r){
$l++
$r--
}

if($left< $r){
quickSort($left, $r , $arr)
}elseif($right>$l){
quickSort($l, $right, $arr)
}else{
$arr 반환
}
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.