简单意义上的桶排序:

桶排序的原理是先安排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实现桶排序算法相关推荐

  1. 算法--排序--大小写字母数字分离(桶排序思想)

    题目: 对D,a,F,B,c,A,z这个字符串进行排序,要求将其中所有小写字母都排在大写字母的前面,但小写字母内部和大写字母内部不要求有序.比如经过排序之后为a,c,z,D,F,B,A,这个如何来实现 ...

  2. 排序算法--(冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序,计数排序,基数排序)

    一.时间复杂度分析 - **时间复杂度**:对排序数据的总的操作次数.反应当n变化时,操作次数呈现什么规律 - **空间复杂度**:算法在计算机内执行时所需要的存储空间的容量,它也是数据规模n的函数. ...

  3. 排序算法----桶排序(java版)

    桶排序 桶排序(Bucket Sort)顾名思义,会用到"桶",我们可以将其想象成一个容器,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序.桶内排完序之后 ...

  4. 桶排序算法(基于Java实现)

    title: 桶排序算法(基于Java实现) tags: 桶排序算法 桶排序算法的原理和代码实现 一.桶排序算法的原理 桶排序,顾名思义,会用到"桶",核心思想是将要排序的数据分到 ...

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

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

  6. 桶排序 Bin Sort

    桶排序 Bin Sort 平均情况下桶排序以线性时间运行.像计数排序一样,桶排序也对输入作了某种假设, 因而运行得很快.具体来说,计数排序假设输入是由一个小范围内的整数构成,而桶排序则 假设输入由一个 ...

  7. 【排序算法】图解桶排序

    目录 前言 桶排序思想 桶排序算法分析 时间复杂度分析 桶排序适用情况 实现一个桶排序 结语 前言 在数据结构与算法的排序中,我们很多人可能更多的熟悉冒泡排序.快速排序.归并排序.可能对堆排序.桶排序 ...

  8. 计数排序vs基数排序vs桶排序

    从计数排序说起 计数排序是一种非基于元素比较的排序算法,而是将待排序数组元素转化为计数数组的索引值,从而间接使待排序数组具有顺序性. 计数排序的实现一般有两种形式:基于辅助数组和基于桶排序. 基于辅助 ...

  9. 排序算法(一)--桶排序、冒泡、快排(JAVA)

    排序算法汇总 参考书籍–<啊哈!算法> 作者:啊哈磊 首先提出一个问题:班内有5名同学,成绩分别为5,8,2,4,2分(满分10分),需要将成绩从小到大排序 简化版 桶排序 时间复杂度O( ...

  10. Python实现桶排序

    Python实现桶排序 一.桶排序简介 桶排序(Bucket sort)是一种通过分桶和合并实现的排序算法,又被称为箱排序. 桶排序先将数据分到有限数量的桶里,然后对每一个桶内的数据进行排序(桶内排序 ...

最新文章

  1. SQL 主键 自动编号 主键自增
  2. 3 Redis 配置文件
  3. 时时流量查看工具-ifsta,nload,iftop
  4. 接口可以继承抽象类吗_Python接口类的多继承以及抽象类的单继承
  5. 2.Java内存回收机制
  6. android获取其他app布局,android - 如何从App的(布局)XML变量中获取Manifest版本号?...
  7. python redis模块_大数据入门4 | Redis安装及python中的redis模块加载
  8. 2020离散数学系列
  9. 医学方面的创业计划书_医学生创业计划书
  10. MS08067红队攻防班 第5期 开班倒计时1天~
  11. 无需软件,笔记本自带wifi功能,几条命令轻松搞定
  12. flink设置checkpoint部署后一直重启,出现检查点无法写入的问题
  13. 网页期末作业 基于HTML+CSS中国传统节日【清明节】带论文8000字
  14. php手机网页下载文件,php 手机下载 POST 类
  15. ubuntu14.04LTS安装steam
  16. 无套路,鬼灭之刃同人游戏
  17. HTTP:网络请求状态码204、304
  18. mac备忘录html,mac备忘录怎么备份与恢复|mac备忘录的使用方法
  19. vasp计算压电系数_无铅四方相钙钛矿短周期超晶格压电效应机理研究
  20. 3年外包裸辞,面试阿里、字节全都一面挂,哭死.....

热门文章

  1. JS中的slice和splice
  2. larave 5 could not be opened: failed to open stream: Permission denied
  3. 【mybatis深度历险系列】mybatis中的动态sql
  4. SQL Server 2012内存
  5. Angular 学习笔记——$interpolateProvide
  6. InstallShield 12 制作安装包
  7. Javasript中Date日期常用用法(正则、比较)
  8. pku2707--Copier Reduction
  9. 流浪北京的日子(二)
  10. 小h的数列 //差分前缀和的应用(好好看好好学(包括我自己))