Maison  >  Article  >  développement back-end  >  Tri de tableau PHP sans fonction

Tri de tableau PHP sans fonction

WBOY
WBOYoriginal
2023-05-19 09:13:37549parcourir

En PHP, un tableau est un type de données courant qui peut stocker plusieurs valeurs et accéder à ces valeurs via des index. Lorsque nous devons trier un tableau, nous utilisons généralement les fonctions intégrées de PHP, telles que sort(), rsort(), asort(), etc., qui nous permettent de trier facilement le tableau.

Cependant, nous pouvons parfois avoir besoin de trier le tableau sans utiliser la fonction de tri. Cela peut arriver dans les situations suivantes :

  1. Le tri personnalisé d'un tableau, utilisant la fonction de rappel de la fonction de tri est inefficace.
  2. Vous souhaitez éviter d'utiliser les fonctions intégrées de PHP pour améliorer la lisibilité et les performances du code.

Alors, dans ce cas, comment trier le tableau en PHP ? Cet article vous présentera quelques méthodes de tri de tableaux basées sur le langage PHP natif.

  1. Tri à bulles

Le tri à bulles est un algorithme de tri de base qui peut comparer et échanger des éléments adjacents. L'implémentation spécifique est la suivante :

function array_bubble_sort($arr){
    $len=count($arr);
    for($i=0;$i<$len-1;$i++){
        for($j=0;$j<$len-1-$i;$j++){
            if($arr[$j]>$arr[$j+1]){
                $temp=$arr[$j+1];
                $arr[$j+1]=$arr[$j];
                $arr[$j]=$temp;
            }
        }
    }
    return $arr;
}

Dans le code ci-dessus, nous utilisons deux boucles for. La boucle externe contrôle le nombre de comparaisons et la boucle interne est utilisée pour comparer et échanger des éléments adjacents. De cette façon, nous pouvons trier le tableau sans utiliser la fonction de tri.

  1. Tri par insertion

Le tri par insertion est un algorithme de tri simple et efficace qui insère chaque élément un par un dans le tableau trié pour trier le tableau . L'implémentation spécifique est la suivante :

function array_insertion_sort($arr){
    $len=count($arr);
    for($i=1;$i<$len;$i++){
        $temp=$arr[$i];
        $j=$i-1;
        while($j>=0&&$arr[$j]>$temp){
            $arr[$j+1]=$arr[$j];
            $j--;
        }
        $arr[$j+1]=$temp;
    }
    return $arr;
}

Dans le code ci-dessus, nous utilisons une boucle for et une boucle while La boucle for est utilisée pour sélectionner l'élément à insérer, et la boucle while est utilisée. pour l'insérer dans la bonne position. De cette manière également, nous pouvons trier le tableau sans utiliser la fonction de tri.

  1. Tri rapide

Le tri rapide est un algorithme de tri couramment utilisé qui trie un tableau en le divisant en deux sous-tableaux. L'implémentation spécifique est la suivante :

function array_quick_sort($arr){
    $len=count($arr);
    if($len<=1){
        return $arr;
    }
    $pivot=$arr[0];
    $left=[];
    $right=[];
    for($i=1;$i<$len;$i++){
        if($arr[$i]<=$pivot){
            $left[]=$arr[$i];
        }else{
            $right[]=$arr[$i];
        }
    }
    return array_merge(array_quick_sort($left),[$pivot],array_quick_sort($right));
}

Dans le code ci-dessus, nous utilisons la récursivité pour implémenter un tri rapide. Tout d'abord, nous sélectionnons un élément pivot comme pivot, puis parcourons le tableau et plaçons les éléments les plus petits dans le sous-tableau de gauche et les éléments les plus grands dans le sous-tableau de droite, puis trions les sous-tableaux gauche et droit par récursion, et enfin mis Ils sont fusionnés avec l'élément de base. De même, il est possible de trier un tableau sans utiliser la fonction de tri.

Résumé

Les trois algorithmes de tri ci-dessus peuvent trier les tableaux PHP sans utiliser de fonction de tri. Bien que ces algorithmes ne soient pas aussi efficaces que les fonctions de tri intégrées à PHP, ils peuvent améliorer la lisibilité et la compréhension de notre code. Si vous avez besoin d'une méthode de tri personnalisée ou évitez d'utiliser les fonctions intégrées de PHP, essayez d'utiliser ces algorithmes pour trier votre tableau.

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