Cet article présente principalement en détail l'algorithme de tri par bucket implémenté en PHP, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Le tri par bucket dans un sens simple :
.Le principe du tri des buckets est d'organiser d'abord N+1 buckets sous forme de conteneurs, si la plage de données est N.
Ensuite bouclez les données de test (données à trier) et mettez-les dans le bucket correspondant. Les données doivent être comprises dans la plage N.
Enfin, bouclez les éléments dans le seau et sortez-les, en les triant de grand à petit ou de petit à grand.
Par exemple :
Notre plage de valeurs est de 10, nous devons alors définir un tableau $arr d'une longueur de 11. Et laisser toutes les valeurs des éléments be est 0
Ensuite, parcourez le tableau qui doit être trié, tel que 5, 3, 5, 2, 8. (La plage de valeurs ici n'est en fait que 8)
Correspond aux données dans le tableau de compartiments $arr à son tour, c'est-à-dire s'il vaut 5, créez $arr[5]++.
À ce moment-là $arr[2]=1 $arr[3]=1 $arr[5]= 2 $arr[8]=1
Bouclez ensuite le tableau de $arr. Si $arr[2]=1, la boucle génère l'élément 2 une fois $arr[5]=2, puis boucle la sortie 5 deux foisLa sortie résultante est 2 3 5 5 8
Si la valeur de la boucle va de grande à petite, elle sera triée de grande à petite
<?php //设置默认数组,默认值为0; $arr = array(); for ($i = 0; $i <= 10; $i++) { $arr[$i] = 0; } //设置测试的五个数据 $arr1 = array(5, 3, 5, 2, 8); //根据数据 对默认数组的对应元素进行+1; J的取值范围不能等于$arr1数组长度 for ($j = 0; $j < count($arr1); $j++) { //这边给相应的数组值+1 $arr[$arr1[$j]]++; } //开始循环输出 默认数组 $arr 里面相应的值 for ($k = 0; $k <= 10; $k++) { for ($l=1; $l <=$arr[$k]; $l++) { echo "$k </n>"; } } ?>
Inconvénients :
Gain d'espace.Impossible de trier les données à virgule flottante.
Explication détaillée des problèmes rencontrés lors de la configuration du chargement différé lors du développement du fournisseur de services Laravel
PHP implémente un algorithme de tri par tas de tri
Apprentissage de l'algorithme de tri par sélection simple 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!