Home >Backend Development >PHP Tutorial >Bucket sorting in a simple sense (PHP implementation)

Bucket sorting in a simple sense (PHP implementation)

藏色散人
藏色散人forward
2020-02-22 14:08:202498browse

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>";
    }
}
?>

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!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete
Previous article:PHP Tips SharingNext article:PHP Tips Sharing