本篇讲解PHP实现桶排序算法。

简单意义上的桶排序:

桶排序的原理是先安排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

如果循环数值是从大到小 则会是从大到小的排序

//设置默认数组,默认值为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 ";

}

}

?>

本篇讲解PHP实现桶排序算法,更多相关内容请关注php中文网。

相关推荐:

php桶排序,PHP实现桶排序算法相关推荐

  1. C++实现桶排序——十大经典排序算法之九【GIF动画+完整代码+详细注释】

    十大经典排序算法系列博客-->传送门 桶排序是计数排序的升级版.它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定.桶排序 (Bucket sort)的工作的原理:假设输入数据服从均 ...

  2. java 桶排序_[图解] 桶排序

    桶排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序.选择排序.插入排序.归并排序.快速排序和堆排序都是基于比较的排序,而桶排序提出了一种新的思路,即基于数据状态的排序. 1. 桶排序的 ...

  3. 桶排序JAVA软件测试_111-堆排序的速度测试和小结

    2.网上数据结构和算法的课程不少,但存在两个问题: 1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了 2) ...

  4. c语言链表桶排序,【排序】图解桶排序

    一.思想 一句话总结:划分多个范围相同的区间,每个子区间自排序,最后合并. 桶排序是计数排序的扩展版本,计数排序可以看成每个桶只存储相同元素,而桶排序每个桶存储一定范围的元素,通过映射函数,将待排序数 ...

  5. 桶排序c语言,桶排序(Bucket Sort)的数组实现

    桶排序的数组实现 桶排序Bucket Sort从1956年就开始被使用,该算法的基本思想是由E. J. Issac R. C. Singleton提出来. 桶排序(Bucket Sort)是迄今为止最 ...

  6. Hadoop streaming 排序、分桶参数设置

    编写hadoop任务经常需要用到partition和排序.这里记录一下几个参数. 1. 概念 Partition:分桶过程,用户输出的key经过partition分发到不同的reduce里,因而par ...

  7. leetcode912. 排序数组 有范围的排序统统用桶排序

    给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0] 输出:[0 ...

  8. 排序集锦(各种排序算法的特点及性能分析)

    关于排序,似乎很简单的很常见的概念,却蕴含着很多技术,下面是从不同的角度,对排序的总结: 直插希 冒泡快 选择堆 1 按照排序特性分类 首先按照排序本身的操作特性可以分为下面几种: 插入排序 直接插入 ...

  9. C#算法设计排序篇之10-桶排序(附带动画演示程序)

    桶排序(Bucket Sort) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/693 访问. 桶排序的工作原理是将数组 ...

  10. java算法----排序----(6)希尔排序(最小增量排序)

    1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...

最新文章

  1. 2018目标,提高免疫力,身体工作双丰收
  2. 考试题string——线段树。
  3. 信息系统项目管理师备考之旅1---学习计划和方法制定
  4. 测试软件Postman下载(亲测有效)
  5. python入门导引
  6. [云炬python3玩转机器学习]4-3 训练数据集,测试数据集
  7. golang string 加号连接性能慢_面试必备:浅析C#性能优化的若干种方法
  8. arm板telnetd为什么运行不了_一种基于ARM的嵌入式系统开发的方案详细讲解
  9. 文件不能自动求和_Excel求和公式函数的使用方法教程
  10. 从自卑的阴影中走出来
  11. git提交本地代码到新分支
  12. k3 lede刷官改_斐讯 K3 路由 LEDE 固件刷回官方原版固件
  13. scanf可以输入负数吗_在excel表格中输入负数应该怎样输
  14. XPosed及插件安装(解决下载http://dl.xposed.info/repo/full.xml.gz时出错的问题)
  15. python 招聘 海盐_聚焦普高新课标 提升信息核心素养——海盐县初中信息技术Python课堂教学研讨活动在武原中学举行...
  16. Google Dremel 理解
  17. Android showStatusIcon on inactive InputConnection异常
  18. 图像分类——猫狗大战问题
  19. 港美股系统开发软件开发之证券交易软件供应商对比
  20. python爬虫——百度贴吧图片爬取 小项目

热门文章

  1. 【HDU 2028】Lowest Common Multiple Plus
  2. spring boot启用tomcat ssl
  3. Openfiler开启iSCSI服务(iSCSI Target)
  4. Framebuffer原理、使用、测试系列文章
  5. 教授爆笑讲解超级玛丽
  6. PowerDesigner导出excel
  7. golang 字符串 去首尾字符
  8. linux shell 判断字符串是否为数字
  9. git-flow 工作流程简介
  10. linux shell map dict 字典数组