코드 1:
코드 복사 코드는 다음과 같습니다.
functionquicksort($str){
if(count($str)<=1) return $str; //숫자가 1보다 크지 않으면 직접 반환
$key=$str[0] //값을 가져와 나중에 비교에 사용
$left_arr=array();
$right_arr =array();
for($i=1;$i
$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 반환
}
}