Le contenu de cet article concerne les idées d'algorithme et le code pour un tri rapide en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Idée de base : divisez-le en deux parties selon leur taille, triez-les de manière récursive et regardez en avant et en arrière (fonction de partage).
Le code php est le suivant :
<?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);
Articles connexes recommandés :
Tri rapide PHP petit exemple Méthode d'implémentation de tri rapide PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!