Algorithmenideen und Code zur Implementierung der schnellen Sortierung in PHP

不言
Freigeben: 2023-04-03 19:14:02
Original
1355 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit den Algorithmusideen und dem Code für die schnelle Sortierung in PHP. Ich hoffe, dass er für Freunde hilfreich ist.

Kernidee: Teilen Sie es der Größe nach in zwei Teile auf, sortieren Sie sie rekursiv und schauen Sie vorwärts und rückwärts (Split-Funktion).

Algorithmenideen und Code zur Implementierung der schnellen Sortierung in PHP

Der PHP-Code lautet wie folgt:

<?php function    quickSort($arr){
    $resultArr=qSort($arr,0,count($arr)-1);
    return  $resultArr;
}
function    qSort($arr,$low,$high){
   if($low<$high){
       //算出枢轴值
       $partRes=partition($arr,$low,$high);
       $arr=$partRes["resultArr"];
       
       $arr=qSort($arr,$low,$partRes["pivot"]-1);//对低子表递归排序
       $arr=qSort($arr,$partRes["pivot"]+1,$high);//对高子表递归排序
   }
   return   $arr;
}
function    partition($arr,$low,$high){
    $pivotkey=$arr[$low];   //用子表的第一个记录作枢纽记录
    while ($low<$high){     //从表的两端交替向中间扫描
        while ($low<$high&&$arr[$high]>=$pivotkey){
            $high--;
        }
        $arr=swap($arr,$low,$high);//将比枢轴记录小的记录交换到低端
        while ($low$low,"resultArr"=>$arr);//返回枢轴所在位置
}
function    swap($arr,$index1,$index2){
    $pivotkey=$arr[$index1];
    $arr[$index1]=$arr[$index2];
    $arr[$index2]=$pivotkey;
    return  $arr;
}
$arr=array(9,1,3,2,6,7,4,8);
$resultArr=quickSort($arr);
echo implode(',',$resultArr);
Nach dem Login kopieren

Empfohlene verwandte Artikel:

PHP-Schnellsortierung, kleines Beispiel, PHP-Schnellsortierungsmethode

Schnellsortierung, PHP-Implementierung, PHP-Schnellsortierungsmethode, PHP-Schnellsortierung, Idee, schnelle Sortierberechnung

Das obige ist der detaillierte Inhalt vonAlgorithmenideen und Code zur Implementierung der schnellen Sortierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage