Comment implémenter le tri rapide en PHP ?

藏色散人
Libérer: 2023-04-05 13:38:01
original
9362 Les gens l'ont consulté

Le tri rapide est un tri par comparaison, ce qui signifie qu'il peut trier des éléments de n'importe quel type. Le tri rapide peut être considéré comme une amélioration du tri à bulles.

Comment implémenter le tri rapide en PHP ?

Le diagramme schématique de l'idée de mise en œuvre du tri rapide est le suivant :

Comment implémenter le tri rapide en PHP ?

Remarque : La ligne horizontale est la valeur pivot

Le code de l'algorithme de tri rapide est le suivant :

<?php
function quick_sort($my_array)
{
    $loe = $gt = array();
    if(count($my_array) < 2)
    {
        return $my_array;
    }
    $pivot_key = key($my_array);
    $pivot = array_shift($my_array);
    foreach($my_array as $val)
    {
        if($val <= $pivot)
        {
            $loe[] = $val;
        }elseif ($val > $pivot)
        {
            $gt[] = $val;
        }
    }
    return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}

$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo &#39;原始数组 : &#39;.implode(&#39;,&#39;,$my_array).&#39;\n&#39;;
$my_array = quick_sort($my_array);
echo &#39;排序后数组 : &#39;.implode(&#39;,&#39;,$my_array);
Copier après la connexion

Sortie :

原始数组:3,0,2,5,-1,4,1                             
排序后数组:-1,0,1,2,3,4,5
Copier après la connexion

Introduction aux fonctions associées :

< La fonction 🎜>array_shift() déplace l'unité au début du tableau hors du tableau ;

array_shift ( array &$array ) : mixed
Copier après la connexion
array_shift() déplace la première unité du tableau hors du tableau ; et le renvoie comme résultat, en décrémentant la longueur du tableau de un et en remplaçant toutes les autres unités. Avancer d'une position. Tous les noms de touches numériques seront modifiés pour compter à partir de zéro et les noms de touches de texte resteront inchangés. La fonction

array_merge() fusionne un ou plusieurs tableaux ;

array_merge ( array $array1 [, array $... ] ) : array
Copier après la connexion
array_merge() fusionne les cellules d'un ou plusieurs tableaux, et les valeurs d'un tableau sont ajoutées au précédent. tableau derrière. Renvoie le tableau résultant.

Cet article est une introduction à l'algorithme de tri rapide PHP. J'espère qu'il sera utile aux amis dans le besoin !


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!