php冒泡排序实现方法,传入几个数字排序后 输出实战例子
php冒泡排序实现方法,传入几个数字排序后 输出实战例子
算法和数据结构是一个编程工作人员的内功。
四种入门级排序算法: 冒泡排序、选择排序、插入排序、快速排序。
一、冒泡排序
原理:对一组数据,比较相邻数据的大小,将值小数据在前面,值大的数据放在后面。 (以下都是升序排列,即从小到大排列)
举例说明: $arr = array(6, 3, 8, 2, 9, 1);
$arr 有6个数据,按照两两比较大小如下,注意 比较轮数 和 每轮比较次数
第一轮排序:
第一次比较 6和3比较 结果:3 6 8 2 9 1
第二次比较 6和3比较 结果:3 6 8 2 9 1
第三次比较 8和2比较 结果:3 6 2 8 9 1
第四次比较 8和9比较 结果:3 6 2 8 9 1
第五次比较 9和1比较 结果:3 6 2 8 1 9
第一轮比较总结:1.排序第1轮、比较5次,没有获得从小到大的排序
function orderArray($arr) {
$count = count($arr);
$temp = 0;
// 外层控制排序轮次
for ($i = 0; $i < $count - 1; $i ++) {
// 内层控制每轮比较次数
for ($j = 0; $j < $count - 1 - $i; $j ++) {
if ($arr[$j] > $arr[$j + 1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;
}
}
}
return $arr;
}
function orderNumber($a1,$a2,$a3,$a4) {
$arr = array($a1,$a2,$a3,$a4);
$rs = orderArray($arr);
echo '<b>'.$rs[0].$rs[1].$rs[2].$rs[3].'</b>';
}
<?=orderNumber(2,9,5,3) ?>
php冒泡排序实现方法,传入几个数字排序后 输出实战例子的更多相关文章
- [原]Java面试题-将字符串中数字提取出来排序后输出
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
- Python:数字的格式化输出
>>> 'The value is {:0,.2f}'.format(x) 'The value is 1,234.57' 需要将数字格式化后输出,并控制数字的位数.对齐.千位分隔符 ...
- Python之数字的格式化输出
需求: 将数字格式化后输出,并控制数字的位数.对齐.千位分隔符和其他的细节 x = 1234.56789 # Two decimal places of accuracy print(format(x ...
- js关于对象键值为数字型时输出的对象自动排序问题的解决方法
一.对象键值为数字型时输出的对象自动排序问题如: var objs = { "1603":{id:"1603"}, "1702" ...
- 61. 从1到n,共有n个数字,每个数字只出现一次。从中随机拿走一个数字x,请给出最快的方法,找到这个数字。如果随机拿走k(k>=2)个数字呢?[find k missing numbers from 1 to n]
[本文链接] http://www.cnblogs.com/hellogiser/p/find-k-missing-numbers-from-1-to-n.html [题目] 从1到n,共有n个数字 ...
- java中多个数字运算后值不对(失真)处理方法
最近遇到一个bug ,在java里面计算两个数字相减,633011.20-31296.30 得到的结果居然是601714.8999999999,丢失精度了,原来这是Java浮点运算的一个bug. 解决 ...
- js中多个数字运算后值不对(失真)处理方法
最近遇到一个bug ,在js里面计算两个数字相减,633011.20-31296.30 得到的结果居然是601714.89,领导不乐意了说怎么少了0.01,我一听,噶卵达,来达鬼,不可能啊,我Goog ...
- java中方法传入参数时:值传递还是址传递?
JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...
- JS对象 四舍五入round() round() 方法可把一个数字四舍五入为最接近的整数。 语法: Math.round(x)
四舍五入round() round() 方法可把一个数字四舍五入为最接近的整数. 语法: Math.round(x) 参数说明: 注意: 1. 返回与 x 最接近的整数. 2. 对于 0.5,该方法将 ...
随机推荐
- web应用1
阅读内容 一.web应用 二.web协议 三.web框架 四.补充知识 回到顶部 一.web应用 二.web协议 三.web框架 四.补充知识 五.补充知识
- ORACLE12C架构图
- docker 在宿主机上根据进程PID查找归属容器ID
在使用docker时经常出现一台docker主机上跑了多个容器,可能其中一个容器里的进程导致了整个宿主机load很高,其实一条命令就可以找出罪魁祸首 #查找容器ID docker inspect -f ...
- xcode 报错Failed to load project at xxxx ,incompatible project version
错误原因: 由于工程是低版本的Xcode建立的,在使用高版本的Xcode打开时会出现编译不了工程. 解决方法: 鼠标右击.xcodeproj文件 —>显示包内容 —>打开project.p ...
- SDWebImage代码赏析
过NSOperationQueue来控制 为了保护变量,使用大量了sychronized 读的时候使用了dispatch_sync dispatch_sync(sself.barrierQueue, ...
- SmartGit 过期破解 - 授权文件 Free Trial License to Non-Commercial
亲测可用~ Windows: %APPDATA%/syntevo/SmartGit/OS X: ~/Library/Preferences/SmartGit/Unix/Linux: ~/.sm ...
- css3--单行、多行文本溢出
<style> .div1 { width: 200px; height: 200px; background: red url(img/user.png) no-repeat; text ...
- idc函数大全
A80_addcA80_addcixA80_addciyA80_addixA80_addiyA80_cmpdA80_cmpiA80_im0A80_im1A80_im2A80_jrcA80_jrncA8 ...
- idc指令相关
#按不同数据类型打印当前地址opcode print Byte(ea) print Word(ea) print Dword(ea)
- (已解决)Eclipsez中打不开c++文件,显示Editor could not be initialized.
新建的游戏导入Eclipse能正常运行,配置什么的都弄好了,游戏运行无任何问题!问题是:关闭Eclipse后,重新打开,就会出现An internal error occurred during: & ...