PHP实现桶排序算法

(编辑:jimmy 日期: 2024/10/3 浏览:2)

简单意义上的桶排序:

桶排序的原理是先安排N+1个桶作为容器,若数据范围为N的话。
然后将测试数据(所需排序的数据)进行循环,放入对应的桶内。数据一定是在范围N内的。
最后,循环桶里的元素,并且输出,进行从大到小或从小到大的排序。

例如:

我们的取值范围是10,那么就要定义一个 11长度的数组$arr. 并且让所有的元素值都为0
然后,对需要排序的数组进行循环 如5,3,5,2,8.(这边取值范围其实才8)
将数据依次对应$arr桶数组内元素,即 如果是5,则使$arr[5]++.
这时候 $arr[2]=1 $arr[3]=1 $arr[5]=2 $arr[8]=1
然后循环$arr的数组,若$arr[2]=1,则循环输出元素2一次,$arr[5]=2,则循环输出5两次
结果输出即为 2 3 5 5 8
如果循环数值是从大到小 则会是从大到小的排序

<"$k </n>";
 }
}
?>

缺点:

浪费空间.
无法进行浮点数据的排序.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。