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冒泡排序实现方法,传入几个数字排序后 输出实战例子的更多相关文章

  1. [原]Java面试题-将字符串中数字提取出来排序后输出

    [Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...

  2. Python:数字的格式化输出

    >>> 'The value is {:0,.2f}'.format(x) 'The value is 1,234.57' 需要将数字格式化后输出,并控制数字的位数.对齐.千位分隔符 ...

  3. Python之数字的格式化输出

    需求: 将数字格式化后输出,并控制数字的位数.对齐.千位分隔符和其他的细节 x = 1234.56789 # Two decimal places of accuracy print(format(x ...

  4. js关于对象键值为数字型时输出的对象自动排序问题的解决方法

    一.对象键值为数字型时输出的对象自动排序问题如: var objs = {    "1603":{id:"1603"},    "1702" ...

  5. 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个数字 ...

  6. java中多个数字运算后值不对(失真)处理方法

    最近遇到一个bug ,在java里面计算两个数字相减,633011.20-31296.30 得到的结果居然是601714.8999999999,丢失精度了,原来这是Java浮点运算的一个bug. 解决 ...

  7. js中多个数字运算后值不对(失真)处理方法

    最近遇到一个bug ,在js里面计算两个数字相减,633011.20-31296.30 得到的结果居然是601714.89,领导不乐意了说怎么少了0.01,我一听,噶卵达,来达鬼,不可能啊,我Goog ...

  8. java中方法传入参数时:值传递还是址传递?

    JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...

  9. JS对象 四舍五入round() round() 方法可把一个数字四舍五入为最接近的整数。 语法: Math.round(x)

    四舍五入round() round() 方法可把一个数字四舍五入为最接近的整数. 语法: Math.round(x) 参数说明: 注意: 1. 返回与 x 最接近的整数. 2. 对于 0.5,该方法将 ...

随机推荐

  1. web应用1

    阅读内容 一.web应用 二.web协议 三.web框架 四.补充知识 回到顶部 一.web应用 二.web协议 三.web框架 四.补充知识 五.补充知识

  2. ORACLE12C架构图

  3. docker 在宿主机上根据进程PID查找归属容器ID

    在使用docker时经常出现一台docker主机上跑了多个容器,可能其中一个容器里的进程导致了整个宿主机load很高,其实一条命令就可以找出罪魁祸首 #查找容器ID docker inspect -f ...

  4. xcode 报错Failed to load project at xxxx ,incompatible project version

    错误原因: 由于工程是低版本的Xcode建立的,在使用高版本的Xcode打开时会出现编译不了工程. 解决方法: 鼠标右击.xcodeproj文件 —>显示包内容 —>打开project.p ...

  5. SDWebImage代码赏析

    过NSOperationQueue来控制 为了保护变量,使用大量了sychronized 读的时候使用了dispatch_sync dispatch_sync(sself.barrierQueue, ...

  6. SmartGit 过期破解 - 授权文件 Free Trial License to Non-Commercial

    亲测可用~ Windows: %APPDATA%/syntevo/SmartGit/OS X:    ~/Library/Preferences/SmartGit/Unix/Linux:  ~/.sm ...

  7. css3--单行、多行文本溢出

    <style> .div1 { width: 200px; height: 200px; background: red url(img/user.png) no-repeat; text ...

  8. idc函数大全

    A80_addcA80_addcixA80_addciyA80_addixA80_addiyA80_cmpdA80_cmpiA80_im0A80_im1A80_im2A80_jrcA80_jrncA8 ...

  9. idc指令相关

    #按不同数据类型打印当前地址opcode print Byte(ea) print Word(ea) print Dword(ea)

  10. (已解决)Eclipsez中打不开c++文件,显示Editor could not be initialized.

    新建的游戏导入Eclipse能正常运行,配置什么的都弄好了,游戏运行无任何问题!问题是:关闭Eclipse后,重新打开,就会出现An internal error occurred during: & ...