Heim  >  Artikel  >  Backend-Entwicklung  >  Algorithmenideen und Code zur Implementierung der schnellen Sortierung in PHP

Algorithmenideen und Code zur Implementierung der schnellen Sortierung in PHP

不言
不言Original
2018-08-14 17:15:451339Durchsuche

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);

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!

Stellungnahme:
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