Bucket sorting in a simple sense (PHP implementation)

藏色散人
Release: 2023-04-08 12:46:02
forward
2403 people have browsed it

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 0

● Then, loop through the array that needs to be sorted, such as 5,3,5,2,8.

● Match the data to the elements in the $arr bucket array in turn, that is, if it is 5, Then make $arr[5] .

● At this time $arr[2]=1 $arr[3]=1 $arr[5]=2 $arr[8]=1

● Then loop through the array of $arr. If $arr[2]=1, the loop will output element 2 once. If $arr[5]=2, the loop will output element 5 twice.

● The result output is 2 3 5 5 8

● If the cycle 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>";
    }
}
?>
Copy after login

Disadvantages:

● Waste of space.

● Unable to sort floating point data.

For more programming-related content, please pay attention to the Programming Introduction column on the PHP Chinese website!

The above is the detailed content of Bucket sorting in a simple sense (PHP implementation). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!