Maison  >  Article  >  développement back-end  >  Exemple de code pour implémenter le tri à bulles en php

Exemple de code pour implémenter le tri à bulles en php

不言
不言avant
2019-01-26 10:49:194983parcourir

Le contenu de cet article concerne l'exemple de code d'implémentation du tri à bulles en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Le tri à bulles est un algorithme relativement simple et couramment utilisé, et c'est également la question la plus fréquemment posée lors des entretiens. Je sens que je ne suis pas assez capable pour avoir une compréhension plus profonde, je vais donc enregistrer le contenu de certains documents ci-dessous. Il y a un lien vers le texte original à la fin de l'article.

Tri à bulles

Le tri à bulles (anglais : Bubble Sort) est un algorithme de tri simple. Il parcourt à plusieurs reprises la séquence à trier, en comparant deux éléments à la fois et en les échangeant s'ils sont dans le mauvais ordre. Le travail de visite du tableau est répété jusqu'à ce qu'aucun échange ne soit plus nécessaire, ce qui signifie que le tableau a été trié. Le nom de cet algorithme vient du fait que les éléments plus petits « flotteront » lentement vers le haut du tableau grâce à l’échange.

Le tri à bulles nécessite un nombre O(n2) de comparaisons pour n éléments et peut être trié sur place. Bien que cet algorithme soit l’un des algorithmes de tri les plus simples à comprendre et à mettre en œuvre, il est très inefficace pour trier des tableaux contenant un grand nombre d’éléments.

L'algorithme de tri à bulles fonctionne comme suit :

Compare les éléments adjacents. Si le premier est plus grand que le second, échangez-les tous les deux.

Faites de même pour chaque paire d'éléments adjacents, en commençant par la première paire et en terminant par la dernière paire. Une fois cette étape terminée, l’élément final sera le plus grand nombre.

Répétez les étapes ci-dessus pour tous les éléments sauf le dernier.

Continuez à répéter les étapes ci-dessus pour de moins en moins d'éléments à chaque fois jusqu'à ce qu'il n'y ait plus de paires de nombres à comparer.

Ce qui précède est l'introduction dans Wikipédia. Comme vous pouvez le constater, le principe n'est pas compliqué. Mais ce n’est pas un bon choix lorsque la quantité de données est importante.

Démonstration d'animation

Il est à noter que l'ordre du code ci-dessous et de l'exemple est inversé.
Exemple de code pour implémenter le tri à bulles en php

Exemple de code pour implémenter le tri à bulles en php

Instance

<?php $arr = [33, 24, 8, 21, 2, 23, 3, 32, 16];

function bubbleSort($arr)
{
    if (!is_array($arr)) {
        return false;
    }

    $count = count($arr);

    if ($count < 2) {
        return $arr;
    }

    for ($i = 0; $i < $count; $i++) {
        for ($k = $i + 1; $k < $count; $k++) {
            // $arr[$i] 和 $arr[$k] 是相邻的两个值
            if ($arr[$i] > $arr[$k]) {
                // 前者大于后者,调换位置
                // 如果想要按照从大到小进行排序,改为 $arr[$i]  2 [1] => 3 [2] => 8 [3] => 16 [4] => 21 [5] => 23 [6] => 24 [7] => 32 [8] => 33 )

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer