桶式排序 php,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 ";

}

}

?>

缺点:

浪费空间.

无法进行浮点数据的排序.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#养老院老人信息管理系统源码 论文_包河区【失智老人养老院】

包河区【失智老人养老院】&#xff0c;光明老年护理院广受好评&#xff0c;本着“为政府分忧、帮子女尽孝”的服务宗旨;以“你把老人托给我&#xff0c;我把放心送给你”的服务理念;针对社会上有病的、子女无暇照顾的老年人&#xff0c;提供“爱心、耐心、热心”等全方位关怀服…

php mysql 作业计划,关于php:我需要使用cron作业每30分钟恢复一次数据库(mysql)

我是cron jobs的新手&#xff0c;我需要每30分钟恢复一次数据库(mysql)。 是否有一个cron作业命令可以从已被gzip压缩的.sql文件中恢复数据库&#xff1f;或者我是否需要创建一个php脚本来执行此操作并创建一个cron作业来每30分钟调用一次这个脚本&#xff1f;此外&#xff0c;…

querywrapper 时间区间查询_雅思官方:关于增设用于英国签证及移民的雅思考试考点的通知!附20192020雅思考试时间安排...

接英国文化教育协会通知&#xff0c;为满足广大考生日益增长的报考需求&#xff0c;英国文化教育协会(雅思考试主办方)即日宣布&#xff0c;在南京财经大学(仙林校区)增设用于英国签证及移民的雅思考试考点&#xff0c;首场考试日期为2019年12月21日。考点具体信息如下&#xf…

scandall pro找不到扫描仪_吉林机箱风扇灯条找哪家

吉林机箱风扇灯条找哪家&#xff0c;阶新科技&#xff0c;合作理念--开诚布公&#xff0c;互相信任&#xff0c;团结奋斗。吉林机箱风扇灯条找哪家&#xff0c; 拆开机箱的前置面板可以看到前置面板中间带有长条形的叉戟灯条设计&#xff0c;这样也就导致前置的机箱风扇只能装在…

PHP8编译swoole出错,swoole自定义错误的方法

创建错误处理器实现ErrorHandlerInterface接口namespace App;use Core\AbstractInterface\ErrorHandlerInterface;class Test implements ErrorHandlerInterface{function handler( $msg,$file null,$line null,$errorCode null,$trace ){echo "文件{$file}的第{$line}…

大数据技术架构_架构大数据图

大数据管理数据处理过程图大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察力。大数据处理的主要流程包括数据收集、数据存储、数据处理、数据应用等主要环节。随着业务的增长,大量和流程、规…

excel公式编辑器_Excel中自动更新超链接的文件目录,超简单

日常工作中&#xff0c;一个项目的文件往往会有很多个&#xff0c;在Excel中制作一个项目文件目录&#xff0c;可以快速方便的查看不同的文件。如下图所示&#xff0c;就是一个模拟的项目文件夹内的所有子文件夹&#xff0c;每个子文件夹内包含不同类型的文档&#xff0c;而且文…

蓝牙最新版本6.0_FIIL新品 T1 Lite,蓝牙5.2加持下的TWS耳机

说起汪峰老师&#xff0c;大家第一时间会想到他是国内内地著名男歌手、音乐创作人&#xff0c;摇滚先锋等几个身份&#xff0c;或者会联想到他是妻子著名国际影星章子怡。但如果你对音响或者耳机等音乐产品有所了解的话&#xff0c;你还会知道汪峰老师还亲自创立了一个知名的耳…

标准正态分布_正态分布,正态分布如何变换为标准正态分布

正态分布&#xff08;Normal distribution&#xff09;&#xff0c;又名高斯分布&#xff08;Gaussian distribution&#xff09;若随机变量X服从一个数学期望为μ、方差为σ^2的正态分布&#xff0c;记为N(μ&#xff0c;σ^2)。其概率密度函数为正态分布的期望值μ决定了其位…

WSL安装Oracle,折腾记录:WSL(Windows Subsystem for Linux,Windows上的Linux子系统)安装后的环境配置-Go语言中文社区...

WSL(Windows Subsystem for Linux&#xff0c;Windows上的Linux子系统)的安装比较简单&#xff0c;教程网上较多&#xff0c;此处略过。安装后须要进行一系列配置(如软件源配置、中文配置、图形化配置、开发环境配置)才能投入使用&#xff0c;以Ubuntu为例(其他Debian、Kali、O…

cad钣金展开插件_户外垃圾桶顶盖钣金拆分展开方法

今天给大家讲解一个户外垃圾箱顶盖的拆分展开方法如下图拆分零件如下对称的两个零件如下打开SolidWorks&#xff0c;新建草图如下点击拉伸凸台命令设置参数如下点击倒圆角命令设置参数选择下面蓝色面绘制草图点击草图等距实体选择下图所示蓝色面向内偏移一个板厚1.5点击直线将下…

未能初始化appscan应用程序现在将关闭_企业区块链应用程序的两个关键问题

点击上方“蓝色字体”&#xff0c;选择 “设为星标”关键讯息&#xff0c;D1时间送达&#xff01;很多架构师在使用区块链技术之前需要考虑一些关键问题&#xff0c;而这些问题与数据隐私和区块链类型有关。公共区块链通过提供数据的透明度、完整性、可追踪性、真实性来协调信任…

oracle导入substring,java中substring()和oracle中substr()区别

1)Java中substring(int x)一般是用来截取字符串的。返回一个新的字符串&#xff0c;新字符串是元字符串的子字符串。该新串是从原字符串的x索引处开始&#xff0c;直到原字符串的结尾为止。如&#xff1a;“jerry_player”.substring(1),结果是erry_player“Jerry”.substring(…

laravel 分词搜索匹配度_搜索引擎工作原理

抓取网页。每个独立的搜索引擎都有自己的网页抓取程序爬虫(Spider)。爬虫顺着网页中的超链接&#xff0c;从这个网站爬到另一个网站&#xff0c;通过超链接分析连续访问抓取更多网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍&#xff0c;理论上&#xf…

oracle erp 报表开发手册,处置OracleERP导出的报表文件

[代码] [Java]代码 package k.finance;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import j http://www.starkp.com/linked/20130228.do; xl.Sheet;import jxl.Workboo…

数据库表的软硬关联_Jimmy的关系型数据库设计心得 第一版

欢迎关注Jimmy的公众号&#xff1a;Jimmy嘚啵嘚&#xff0c;每周都有很多干货文章分享&#xff08;最近比较懒&#xff0c;先保证每周写几篇&#xff0c;等忙完了再每日更新&#xff09;最近在梳理以前设计关系型数据库的心得体会&#xff0c;或者斗胆说是方法论&#xff0c;梳…

linux交换分区目录,Linux添加swap交换分区

添加swap交换分区SWAP即交换分区是一种类似于Windows系统虚拟内存的功能&#xff0c;将一部分硬盘空间虚拟成内存来使用&#xff0c;从而解决内存容量不足的情况&#xff0c;因为SWAP毕竟是用硬盘资源虚拟的&#xff0c;所以速度上比真实物理内存要慢很多&#xff0c;一般只有当…

83998 连接服务器出错_来申请一个阿里云服务器玩玩?

对开发有兴趣的小伙伴们可以去阿里云官网申请一个免费入门级的服务器小试身手。那么如何申请免费服务器呢&#xff1f;(这里吐槽不能超链接外部网页)进入官网这里我选择了左边的(体验时间长一点)选择Ubuntu 14.04 32位的系统(上面的地域选择可以百度一下自己的地理位置适合选择…

python漂亮的螺旋_CANVAS 各种螺旋画出来的漂亮图案

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定var canvas document.createElement("canvas"),c canvas.getContext("2d");var w canvas.width window.innerWidth,h canvas.height window.innerHeight;c.fillStyle "rgb(10,10,10…

linux kdb内核调试器,使用KDB调试工具

KDB是针对官方版本的linux内核代码&#xff0c;所以无法使用Ubuntu自带的linux内核版本&#xff0c;需从官网上下载。1、从ftp://oss.sgi.com/www/projects/kdb/download上下载对应内核代码版本的KDB补丁&#xff0c;如linux内核2.6.18版本&#xff0c;需下载kdb-v4.4-2.6.18-c…