Maison  >  Article  >  développement back-end  >  Parlons des méthodes de tri (algorithmes) couramment utilisées en PHP

Parlons des méthodes de tri (algorithmes) couramment utilisées en PHP

PHPz
PHPzoriginal
2023-03-24 15:22:111429parcourir

PHP, en tant que langage de programmation important, présente en fait de bonnes performances à bien des égards. Dans le traitement des données, les algorithmes de tri constituent l’élément le plus courant et le plus important. PHP fournit une variété d'algorithmes de tri. Ce qui suit est une introduction détaillée aux méthodes de tri couramment utilisées en PHP.

  1. Tri à bulles

Le tri à bulles est l'un des algorithmes de tri les plus classiques de PHP. Cet algorithme termine le tri en parcourant et en comparant les tailles de deux éléments adjacents, puis en échangeant continuellement l'ordre. Cette méthode peut être implémentée à l’aide d’une boucle for ou d’une boucle while.

<?php
function bubble_sort($arr){
    $length = count($arr);
    for($i=0;$i<$length;$i++){
        for($j=$i+1;$j<$length;$j++){
            if($arr[$i]>$arr[$j]){
                $tmp = $arr[$i];
                $arr[$i] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
    }
    return $arr;
}
  1. Quick Sort

Quick Sort est l'un des algorithmes de tri les plus rapides de PHP. L'algorithme utilise une méthode récursive pour diviser le tableau en deux parties, en utilisant un élément pivot à la fois pour diviser le tableau en sous-tableaux de plus en plus petits. Ensuite, les sous-tableaux sont continuellement triés de manière récursive et finalement le tableau trié est obtenu.

Il existe de nombreuses façons d'implémenter le tri rapide en PHP, telles que les méthodes récursives et non récursives.

<?php
function quick_sort($arr){
    $length = count($arr);
    if($length<=1){
        return $arr;
    }
    $left_array = array();
    $right_array = array();
    $middle = $arr[0];
    for($i=1;$i<$length;$i++){
        if($arr[$i]<$middle){
            $left_array[] = $arr[$i];
        }else{
            $right_array[] = $arr[$i];
        }
    }
    $left_array = quick_sort($left_array);
    $right_array = quick_sort($right_array);
    return array_merge($left_array, array($middle), $right_array);
}
  1. Tri par sélection

Le tri par sélection est un autre algorithme de tri classique en PHP. Cet algorithme fonctionne en trouvant le plus petit élément d'un tableau et en le plaçant au début du tableau, puis en faisant de même pour les éléments restants. La complexité temporelle de cet algorithme est O(n²).

<?php
function select_sort($arr){
    $length = count($arr);
    for($i=0;$i<$length;$i++){
        $min = $i;
        for($j=$i+1;$j<$length;$j++){
            if($arr[$j]<$arr[$min]){
                $min = $j;
            }
        }
        if($min!=$i){
            $tmp = $arr[$i];
            $arr[$i] = $arr[$min];
            $arr[$min] = $tmp;
        }
    }
    return $arr;
}
  1. Tri par insertion

Le tri par insertion est un autre algorithme de tri simple en PHP. Cet algorithme compare la taille et la position de l'élément actuel avec l'élément précédemment trié, puis insère l'élément dans la position appropriée. La complexité temporelle de cet algorithme est O(n²).

<?php
function insert_sort($arr){
    $length = count($arr);
    for($i=1;$i<$length;$i++){
        $tmp = $arr[$i];
        $j = $i-1;
        while($j>=0 && $arr[$j]>$tmp){
            $arr[$j+1] = $arr[$j];
            $j--;
        }
        $arr[$j+1] = $tmp;
    }
    return $arr;
}

Résumé :

Les quatre méthodes de tri ci-dessus sont toutes des algorithmes de tri courants en PHP. Dans les applications pratiques, le tri par sélection et le tri par insertion sont généralement utilisés pour trier une petite quantité de données, le tri à bulles est plus couramment utilisé lorsque la taille des données est petite et le tri rapide est l'algorithme de tri le plus couramment utilisé lorsque la taille des données est grande. Les développeurs peuvent choisir un algorithme de tri approprié en fonction de la situation réelle.

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