Maison > Article > développement back-end > Tri PHP : idée algorithmique et implémentation de l'algorithme du tri par insertion PHP
Le contenu de cet article concerne le tri PHP : l'idée de l'algorithme et la mise en œuvre de l'algorithme du tri par insertion PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Introduction à l'algorithme :
Ici, nous utilisons toujours un exemple de "Dahua Data Structure" :
Le poker est quelque chose auquel presque tout le monde d'entre nous a joué. Habituellement, lorsque nous commençons, une personne distribue les cartes, et tout le monde pioche et trie les cartes. Si la première carte que vous piochez est 5 et la deuxième carte est 3, nous insérons naturellement le 3. Allez devant le 5 ; la carte est 4, trouvez-la entre 3 et 5 ; la quatrième carte est 6, placez-la derrière 5 ; la cinquième carte est 2, insérez-la devant 3 ;…. Enfin, lorsque nous avons tiré toutes les cartes, les cartes que nous avons en main sont triées du plus petit au plus grand (points).
Regardons cette séquence :
5 3 3 // Insérer 3 dans une liste ordonnée avec un seul élément 5
3 5 4 4 // Insérer 4 dans une liste ordonnée avec deux éléments 3
3 4 5 dans la liste ordonnée de 5 Dans la liste ordonnée de 6
2 3 4 5 6
// 直接插入排序 function swap(&$arr,$a,$b) { $temp = $arr[$a]; $arr[$a] = $arr[$b]; $arr[$b] = $temp; } function insertSort(&$arr) { $count = count($arr); for ($i=1; $i = 0 && $arr[$j] > $temp;$j--) { $arr[$j + 1] = $arr[$j]; //记录后移 } $arr[$j + 1] = $temp; //插入到正确的位置 } } $arr = array(9,1,5,8,3,7,4,6,2); insertSort($arr); var_dump($arr);Résultat de l'exécution :
array(9) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
[ 7]=>
int(8)
[8]=>
int(9)
}
Partage de la méthode de tri des tableaux PHP (tri à bulles, tri par sélection)
php implémente le tri par tas, tutoriel php heap sort_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!