Code 1:
Code kopieren Der Code lautet wie folgt:
function quicksort($str){
if(count($str)<=1) return $str; //Wenn die Zahl nicht größer als eins ist, direkt zurückgeben
$key=$str[0] //Nimm einen Wert und verwende ihn später zum Vergleich;
$right_arr =array();
for($i=1;$i
$left_arr[]=$str[$i];
else
$right_arr[]=$str[ $i];
}
$left_arr=quicksort($left_arr);//Rekursion durchführen;
$right_arr=quicksort($right_arr);
return array_merge($left_arr,$key ),$right_arr);// Kombinieren Sie die linken, mittleren und rechten Werte in einem Array
}//Das Folgende ist der Test
$str=array(5,3,8,2,5 ,9,7,2,1,4,0) ;
print_r(quicksort($str));
Code 2:
Code kopieren Der Code ist wie folgt folgt:
/* @quicksort*/
function quickSort($left,$right,$arr){
$l = $left;
$r = $right; = $arr[($left+$right)/2];
$temp = 0;
while($l<$r){
while($arr[$l]< $pivot){
$l++;}
while($arr[$r]>$pivot){
$r--; ($l>=$r) break;
$temp = $arr[$l]; r] = $temp;
if( $arr[$l]==$pivot) --$r;if($arr[$r]==$pivot) ++$l ;
}
if($l==$r){
$l++>$r--; $r){
quickSort($left, $r , $arr);
}elseif($right>$l){
quickSort($l, $right, $arr);
}else{
return $arr;
}
}