This article mainly introduces the bucket sorting algorithm implemented in PHP in detail. It has certain reference value. Interested friends can refer to it. I hope it can help everyone.
Bucket sorting in a simple sense:
The principle of bucket sorting is to first arrange N+1 buckets as containers, if the data range is N.
Then loop the test data (data that needs to be sorted) and put it into the corresponding bucket. The data must be within range N.
Finally, loop the elements in the bucket and output them, sorting them from large to small or small to large.
For example:
Our value range is 10, then we need to define an array $arr with a length of 11. And let all element values be is 0
Then, loop through the array that needs to be sorted, such as 5, 3, 5, 2, 8. (The value range here is actually only 8)
Correspond to the data in the $arr bucket array in sequence, that is If it is 5, make $arr[5]++.
At this time $arr[2]=1 $arr[3]=1 $arr[5]=2 $arr[8]=1
Then loop the array of $arr. If $arr[2]=1, the loop outputs element 2 once. If $arr[5]=2, the loop outputs 5 twice.
The resulting output is 2 3 5 5 8
If the loop value is from large to small, it will be sorted from large to small
<?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>"; } } ?>
Disadvantages:
Waste of space.
Unable to sort floating-point data.
Related recommendations:
Detailed explanation of bucket sorting of PHP sorting algorithm series_php skills
Python algorithm learning bucket sorting algorithm example (block sorting)
The above is the detailed content of PHP implements bucket sorting algorithm example sharing. For more information, please follow other related articles on the PHP Chinese website!