Maison  >  Article  >  développement back-end  >  Idées algorithmiques et code pour implémenter un tri rapide en PHP

Idées algorithmiques et code pour implémenter un tri rapide en PHP

不言
不言original
2018-08-14 17:15:451346parcourir

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

Idées algorithmiques et code pour implémenter un tri rapide en PHP

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

Tri rapide Implémentation PHP Méthode de tri rapide PHP Idée de tri rapide php Algorithme de tri rapide

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn