Maison > Article > développement back-end > Tri à bulles en PHP
Le tri à bulles en PHP est un type de technique/algorithme de tri simple qui comporte des étapes répétées consistant à comparer chaque paire d'éléments adjacents et à les échanger également uniquement s'ils sont dans le mauvais ordre, tout comme nous n'y sommes pas obligés. Ce type est également appelé type coulant. Le passage des éléments est répété jusqu'à ce qu'il n'y ait plus d'échange requis/nécessaire, ce qui signifie que la liste est maintenant triée. Cette technique/algorithme de tri est un tri par comparaison avec les éléments/nombres plus petits appelés « bulle/bulles ».
PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Le tri à bulles fonctionne en échangeant les éléments adjacents à plusieurs reprises uniquement si les éléments sont dans le mauvais ordre. Bubble Sort compare d’abord le deuxième élément avec le premier élément. Si la première valeur d’élément/index est supérieure à la seconde alors l’échange des éléments sera effectué. Sinon, l'échange ne sera pas effectué. Si le premier élément du tableau est supérieur au second, l'échange des éléments sera effectué. Désormais, le 1er élément devient le 2ème élément et vice versa. Maintenant, l'élément échangé est à nouveau comparé au 3rd élément et ainsi de suite et si la condition est atteinte, l'échange sera effectué à tout moment jusqu'à la fin des éléments du tableau. Maintenant, le scénario ci-dessus se produit en exécutant la boucle comme longueur du tableau/taille du tableau qui est transmise à l'intérieur du programme.
Il existe différents types d'implémentations des techniques de tri à bulles dans le langage de programmation PHP. La première consiste à utiliser la BOUCLE FOR, la seconde à utiliser la BOUCLE WHILE et la troisième à utiliser la BOUCLE DO WHILE. Dans chaque programme, la logique sera la même mais la syntaxe sera un peu différente.
Voici les différents exemples pour implémenter Bubble Sort en PHP :
Dans l'exemple ci-dessous, le tri à bulles est implémenté à l'aide de la méthode FOR LOOP. Dans un premier temps, la taille du tableau est calculée et stockée, puis démarre une boucle, puis à nouveau une boucle démarrée à l'intérieur de la boucle. Ensuite, les valeurs du tableau adjacent sont comparées. Si l'index du tableau de valeur 0 est supérieur à l'index du tableau de valeur 1, alors 1 valeur d'index sera stockée dans la valeur d'index 0. La valeur d'index 0 sera stockée à la valeur d'index 1. Ensuite, le tableau est mentionné avec certains éléments à l'intérieur de la fonction elle-même et encore une fois, une boucle FOR est créée pour appeler les valeurs du tableau triées. Comme ça, nous obtiendrons les éléments triés du tableau.
Code :
<?php function bubbleSort1(&$arr1) { $n1 = sizeof($arr1); for($i1 = 0; $i1 < $n1; $i1++) { for ($j1 = 0; $j1 < $n1 - $i1 - 1; $j1++) { if ($arr1[$j1] > $arr1[$j1+1]) { $t1 = $arr1[$j1]; $arr1[$j1] = $arr1[$j1+1]; $arr1[$j1+1] = $t1; } } } } $arr1 = array(64, 32, 34, 26, 25, 43, 12, 68, 22, 90, 11); $len1 = sizeof($arr1); bubbleSort1($arr1); echo "Sorted array : \n"; for ($i1 = 0; $i1 < $len1; $i1++) echo $arr1[$i1]." "; ?>
Sortie :
Dans l'exemple ci-dessous, une variable de tableau est créée et répertoriée sur les éléments. Ensuite, la taille est calculée et stockée dans $len12. Ensuite, une boucle est créée dans un premier temps pour afficher les éléments réels présents dans le tableau en utilisant la longueur du tableau comme condition de boucle. Ensuite, une variable est créée pour stocker les éléments du tableau triés en appelant la fonction à l'intérieur de la variable. Ensuite, une fonction normale est créée. À l'intérieur de la fonction, WHILE LOOP est utilisé pour implémenter le tri à bulles en PHP en échangeant les éléments adjacents. Mais ici seul l'échange ne sera effectué que si le 2nd élément du tableau est inférieur au 1st élément.
Code :
<?php $arr2 = array(7, 22, 33, 99, 6, 55, 11, 2, 3, 88, 4); echo "Original Array Elements :: "; echo "<br>"; $len12 = sizeof($arr2); for ($z1 = 0; $z1 < $len12; $z1++) echo $arr2[$z1]." "; echo "<hr>"; echo "<br>Sorted array with index values :: \n<br>"; $sortedArr2 = bubbleSort($arr2); var_dump($sortedArr2); echo "<hr>"; function bubbleSort(array $arr2) { $sorted2 = false; while (false === $sorted2) { $sorted2 = true; for ($i2 = 0; $i2 < count($arr2)-1; ++$i2) { $current2 = $arr2[$i2]; $next2 = $arr2[$i2+1]; if ($next2 < $current2) { $arr2[$i2] = $next2; $arr2[$i2+1] = $current2; $sorted2 = false; } } } return $arr2; } echo "<br> Sorted Array Elements List :: "; $len12 = sizeof($sortedArr2); for ($z1 = 0; $z1 < $len12; $z1++) echo $sortedArr2[$z1]." "; echo "<br>"; echo "<hr>"; ?>
Sortie :
Dans le programme ci-dessous, une fonction est créée et une boucle DO WHILE est également implémentée pour implémenter la technique Bubble Sort. Ici, une variable a été créée avec une valeur fausse au début. Ensuite, une FOR LOOP est créée pour exécuter les éléments du tableau. À l'intérieur de la boucle, une condition IF est créée pour vérifier si array1[0] est supérieur à la valeur array1[1]. Si oui, les valeurs de l'index seront échangées. Ensuite, la valeur échangée est vérifiée dans la condition while et exécute à nouveau la boucle DO WHILE. De même, le processus continue et imprime les éléments du tableau de manière triée en utilisant la technique de tri à bulles.
Code :
<?php function bubble_Sort1($my_array1 ) { do { $swapped1 = false; for( $i1 = 0, $c1 = count( $my_array1 ) - 1; $i1 < $c1; $i1++ ) { if( $my_array1[$i1] > $my_array1[$i1 + 1] ) { list( $my_array1[$i1 + 1], $my_array1[$i1] ) = array( $my_array1[$i1], $my_array1[$i1 + 1] ); $swapped1 = true; } } } while( $swapped1 ); return $my_array1; } $test_array1 = array(3, 21, 0, -6, 2, 45, 5, 4, -1, 8, 4, 23, 1); echo "Original Array as mentioned in the Program :\n"; echo implode(', ',$test_array1 ); echo "<br>"; echo "\nSorted Array of the above list\n:"; echo implode(', ',bubble_Sort1($test_array1)). PHP_EOL; echo "<br>"; ?>
Sortie :
J'espère que vous avez appris quelle est la définition du tri à bulles en PHP, la logique derrière le tri à bulles en PHP et comment implémenter le tri à bulles en PHP en utilisant les différentes méthodes.
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!