Maison > Article > développement back-end > Partage d'exemples de tri de bulles PHP
Principe : Pour un ensemble de données, comparer les tailles des données adjacentes, mettre les données avec de petites valeurs devant et les données avec de grandes valeurs derrière. (Les éléments suivants sont tous classés par ordre croissant, c'est-à-dire du petit au grand)
Exemple : $arr = array(6, 3, 8, 2, 9, 1);
$ arr a 6 données, et la taille selon la comparaison par paire est la suivante Notez le nombre de tours de comparaison et le nombre de comparaisons dans chaque tour
Le premier tour de tri :
La première comparaison 6 et 3 résultats de comparaison : 3 6 8 2 9 1
La deuxième comparaison 6 et 3 résultats de comparaison : 3 6 8 2 9 1
La troisième comparaison 8 et 2 résultats de comparaison : 3 6 2 8 9 1
La quatrième comparaison, le résultat de comparaison entre 8 et 9 : 3 6 2 8 9 1
La cinquième comparaison, le résultat de comparaison entre 9 et 1 : 3 6 2 8 1 9
Résumé d'un tour de comparaison : 1. Lors du premier tour de tri et de comparaison 5 fois, aucun ordre du petit au grand n'a été obtenu 2. Parce que chaque comparaison est basée. sur le grand nombre reculant, donc une fois la comparaison terminée, il peut être déterminé que le grand nombre est classé en dernier (9 a bouillonné, il n'est donc pas nécessaire de comparer lors du prochain tour de comparaison)
Deuxième tour de tri :
Premier résultat de comparaison 3 et 6 : 3 6 2 8 1 9
Le deuxième résultat de comparaison de 6 et 2 : 3 2 6 8 1 9
Le troisième résultat de comparaison de 6 et 8 : 3 2 6 8 1 9
Le quatrième résultat de comparaison de 8 et 1 : 3 2 6 1 8 9
Résumé de la comparaison du deuxième tour : 1. Triez le 2ème tour et comparez 4 fois, n'avez pas obtenu le tri du petit au grand 2. 8 bouillonnent, il n'est pas nécessaire de comparer 8 au tour suivant
Le troisième tour de tri :
Le premier résultat de comparaison 3 et 2 : 2 3 6 1 8 9
Le deuxième résultat de comparaison de 3 et 6 : 2 3 6 1 8 9
Le troisième résultat de comparaison de 6 et 1 : 2 3 1 6 8 9
Résumé du troisième tour de comparaison : 1. Au troisième tour de tri et comparaison 3 fois , aucun ordre du petit au grand n'a été obtenu 2. 6 ont bouillonné, il n'est donc pas nécessaire de comparer 6 au tour suivant
Le quatrième tour de tri :
Résultats de la première comparaison 2 et 3 : 2 3 1 6 8 9
Résultat de la deuxième comparaison 3 et 1 : 2 1 3 6 8 9
Résumé du quatrième tour de comparaison : 1 . En triant le 4ème tour et en comparant 2 fois, aucun ordre du petit au grand n'a été obtenu 2. 3 bouillonnent, il n'y a pas besoin de comparer 3 au tour suivant
Le cinquième tour. de tri :
La première comparaison 2 et 1 résultats de comparaison : 1 2 3 6 8 9
Le résumé de la comparaison du cinquième tour : 1 .Le 5ème tour de tri et 1 comparaison n'ont pas obtenu le tri du petit au grand. 2. 2 ont bouillonné puisqu'il n'en reste qu'un, il n'est pas nécessaire de comparer. Jusqu'à présent, l'ensemble du tri a été effectué en 5 tours de tri.
Grâce aux cinq tours de tri ci-dessus et à plusieurs comparaisons, nous avons des raisons de déduire une conclusion :
Pour un tableau de longueur N, nous devons trier N- 1 tours, chaque tour i doit être comparé N-i fois. Nous pouvons utiliser une instruction à double boucle pour cela. La boucle externe contrôle les tours de boucle et la boucle interne contrôle le nombre de comparaisons dans chaque tour.
<?php function order($arr){ $count = count($arr); $temp = 0; //外层控制排序轮次 for($i=0; $i<$count-1; $i++){ //内层控制每轮比较次数 for($j=0; $j< $count-1-$i; $j++){ if($arr[$j] > $arr[$j+1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $temp; } } } return $arr; } $arr= array(6,3,8,2,9,1); $res = order($arr); var_dump($res);
Recommandations associées :
Diverses solutions pour le tri des bulles php
Tableau de tri des bulles php de petite à grande Méthode de tri
exemple de code d'algorithme de tri à bulles de tableau php
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!