Maison > développement back-end > tutoriel php > Explication de l'implémentation de l'algorithme de tri par bucket en PHP

Explication de l'implémentation de l'algorithme de tri par bucket en PHP

jacklove
Libérer: 2023-04-02 10:12:02
original
1394 Les gens l'ont consulté

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>";
 }
}
?>
Copier après la connexion

Inconvénients :

Gain d'espace.

Impossible de trier les données à virgule flottante.

Ce qui précède représente l'intégralité du contenu de cet article. j'espère que cela sera utile à l'apprentissage de tout le monde. J'espère également que tout le monde soutiendra php Chinese net.

Articles qui pourraient vous intéresser :

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!

É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