Principe et application de la méthode de tri par insertion en php

墨辰丷
Libérer: 2023-03-31 22:00:02
original
1792 Les gens l'ont consulté

Cet article présente principalement la méthode de tri par insertion PHP pour implémenter le tri par tableau. Il analyse les principes et les techniques de mise en œuvre spécifiques de la méthode de tri par insertion avec des exemples. Il a une certaine valeur de référence. Les amis dans le besoin peuvent se référer à cet article.

L'exemple décrit comment implémenter le tri de tableau à l'aide du tri par insertion PHP.

L'analyse spécifique est la suivante :

L'idée de base de la méthode de tri par insertion : également illustrée par un cas, toujours en utilisant $arr = array(2,6,3,9) , triés du plus grand au plus petit .

Principe d'implémentation : supposons (non réellement créé) qu'il existe un tableau ordonné $arr = array(2), utilisez $arr[1]=6 pour comparer avec lui, si 6>2, par $arr [0] est replacé à la position $arr[1] et 6 est inséré dans la position $arr[0]. Ensuite, $arr[2]=3 est comparé à $arr[1]=2, 3>2, puis $arr[1]=2 continue de se déplacer vers la position $arr[2], la position $arr[3 d'origine ]=3 Insérez-le dans la position $arr[1], puis continuez à insérer 9 dans la position de fermeture. Le résultat final est (9,6,3,2). Le tri peut également être réalisé après count ($ arr) -1 grandes boucles.

Analyse du modèle de code :

La première grande boucle : $[1] contre $[0]

La deuxième grande boucle : $[2] contre $[1 ] ; ratio, le ratio de $[1] et $[0] ;
Le troisième grand cycle : le ratio de $[3] et $[2], le ratio de $[2] et $[1], le ratio de $[1] et $[0] ;

Le code PHP utilise l'encapsulation de fonctions pour faciliter l'utilisation

<?php
function insertSort(&$arr){
 for($i=1;$i<count($arr);$i++){
 //$insertVal是准备插入的数
 for($j=$i;$j>0;$j--){
  if($arr[$j]>$arr[$j-1]){
  $insertVal = $arr[$j];
  $arr[$j] = $arr[$j-1];
  $arr[$j-1] = $insertVal;
  }
 }
 }
}
$myarr = array(2,6,3,9);
insertSort($myarr);
echo "<pre class="brush:php;toolbar:false">";
print_r($myarr);
?>
Copier après la connexion
Analyse de l'implémentation du code :

Première grande boucle :

$i=1 array (2,6,3,9)

$j=1 Exécuter le rapport de 6 et 2 : $arr[1]=2;$arr[0]=6 , obtenez (6 ,2,3,9)

La deuxième grande boucle :

$i=2 array (6,2,3,9)

$j=2 Exécuter Rapport 3 et 2 : devient $arr[2]=2, $arr[1]=3, et obtient (6,3,2,9)
$j--,$j=1 Exécuter $arr[1 ] et $arr[0] ratio : La condition n'est pas vraie

La troisième grande boucle :

$i=3 tableau (6,3,2,9)

$j =3 Exécuter le rapport 9 et 2 : devenir $arr[3]=2,$arr[2]=9, obtenir (6,3,9,2)
$j--,$j=2 Exécuter 9 et 3 ratio : changement Cela devient $arr[2]=3, $arr[1]=9, et nous obtenons (6,9,3,2)
$j--,$j=1 Exécutez le ratio. de 9 et 6 : cela devient $arr[ 1]=5,$arr[0]=9, get (9,6,3,2)

Résumé : Ce qui précède est J'espère que tout le contenu de cet article pourra être utile à tout le monde.

Recommandations associées :

Comment envoyer des e-mails via le formulaire d'opération php

php utilise le formulaire de vérification pour détecter si le champ est vide

Comment ajouter des espaces à chaque paragraphe en 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal