$start = microtime(true);
   $popArr = array(6,3,23,1,5,100,399,99,66);
   echo '6,3,23,1,5,100,399,99,66';
   $len = count($popArr);
   for ($j=0; $j<$len; $j++)
   {
       for ($i=$len-1; $i>$j; $i--)
       {
           if ($popArr[$i] < $popArr[$i-1])
           {
               $x = $popArr[$i];
               $popArr[$i] = $popArr[$i-1];
               $popArr[$i-1] = $x;
           }
       }
   }
   /*
   j=0 i=8 99和66互换了     array(6,3,23,1,5,100,399,66,99);
       i=7 399和66互换了  array(6,3,23,1,5,100,66,399,99);
       i=6 100和66互换了  array(6,3,23,1,5,66,100,399,99);
       i=5   没变化
       i=4   没变化
       i=3 23和1互换了       array(6,3,1,23,5,66,100,399,99);
       i=2 3和1互换了          array(6,1,3,23,5,66,100,399,99);
       i=1 6和1互换了          array(1,6,3,23,5,66,100,399,99);
       
   j=1 i=8 399和99互换了  array(1,6,3,23,5,66,100,99,399);
       i=7 100和99互换了  array(1,6,3,23,5,66,99,100,399);
       i=6   没变化                  array(1,6,3,23,5,66,99,100,399);
       i=5   没变化                  array(1,6,3,23,5,66,99,100,399);
       i=4 23和5互换了       array(1,6,3,5,23,66,99,100,399);
       i=3   没变化                  array(1,6,3,5,23,66,99,100,399);
       i=2 6和3互换了          array(1,3,6,5,23,66,99,100,399);
       
   j=2 i=8   没变化                  array(1,3,6,5,23,66,99,100,399);
       i=7   没变化                  array(1,3,6,5,23,66,99,100,399);
       i=6   没变化                  array(1,3,6,5,23,66,99,100,399);
       i=5   没变化                  array(1,3,6,5,23,66,99,100,399);
       i=4   没变化                  array(1,3,6,5,23,66,99,100,399);
       i=3 6和5互换了          array(1,3,5,6,23,66,99,100,399);
       
   j=3 i=8   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=7   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=6   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=5   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=4   没变化                  array(1,3,5,6,23,66,99,100,399);
       
   j=4 i=8   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=7   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=6   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=5   没变化                  array(1,3,5,6,23,66,99,100,399);
       
   j=5 i=8   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=7   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=6   没变化                  array(1,3,5,6,23,66,99,100,399);
       
   j=6 i=8   没变化                  array(1,3,5,6,23,66,99,100,399);
       i=7   没变化                  array(1,3,5,6,23,66,99,100,399);
       
   j=7 i=8   没变化                  array(1,3,5,6,23,66,99,100,399);
   */
   echo '<pre>';
   print_r($popArr);
   echo microtime(true) - $start;
   die;

php 冒泡排序原理的更多相关文章

  1. go语言基础之冒泡排序原理

    1.冒泡排序原理 示例: package main //必须有个main包 import "fmt" import "math/rand" import &qu ...

  2. 冒泡排序原理(BubbleSorted)

    //简单的冒泡排序public class BubbleMath { public static void main(String[] args) { //分清楚数组的头和尾,开始为尾,最后为头,因为 ...

  3. Java_冒泡排序_原理及优化

    冒泡排序及其优化 一.原理及优化原理 1.原理讲解 冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较, ...

  4. 冒泡排序法原理讲解及PHP代码示例

    冒泡排序原理 冒泡排序对一个数组里的数字进行排序,把数组里两个相邻的数比较大小,将值小的数放在前面,把大的数往后面放,当然这种排序是升序,即从小到大.举例说明$array = [64, 56, 31, ...

  5. Python算法-冒泡排序

    #coding:utf-8 """ 冒泡排序 原理:依次重复访问每一个需要排序的元素,每次比较相邻的两个元素是否符合顺序,若不符合就交换,直到没有不符合顺序的为止. &q ...

  6. 【Python全栈笔记】07 [模块二] 20 Oct 冒泡排序

    给出一个列表,进行冒泡排序 原理算法: li = [52, 37, 23, 11, 3, 1, ] print(li) # 每次循环,进行一次排序,列表内数字两两比较,最大的数字排到最末尾 # 一共循 ...

  7. python 算法 -- 冒泡排序

    python 排序算法 -- 冒泡排序 原理 从数组的底部开始, 两两比较大小, 小的在下,大的在上, 依次类推直到顶部. 当整个数组比较完毕, 则最上面的一定是最大值(此即冒泡的由来); 当第一轮比 ...

  8. 晓莲说-何不原创:java 实现二维数组冒泡排序

    新手从业路-为自己回顾知识的同时,也希望和大家分享经验: 话不多说,上代码 public class 冒泡排序 { /**     * @param admin     * @2017.12.4   ...

  9. [Java]数组排序-选择排序 冒泡排序 插入排序

    1 选择排序  原理:a 将数组中的每个元素,与第一个元素比较          如果这个元素小于第一个元素, 就将这个         两个元素交换.       b 每轮使用a的规则, 可以选择出 ...

随机推荐

  1. httpClient实现

    1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2.基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一 ...

  2. 对无向图的深度优先搜索(DFS)

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 如何对无向图进行深度优先搜索 的idea 并用源代码加以实现: 0.2) 本文还引入了 背向边(定义见下文 ...

  3. Hadoop 101: Programming MapReduce with Native Libraries, Hive, Pig, and Cascading

    和Hadoop交互的四种方法: 1. Native Libraries 2. Hive 3. Pig 4. Cascading At a high level, people use the nati ...

  4. thinkPHP5.0的学习研究【基础】

    2017年6月19日13:25:56 基础:1.ThinkPHP5的环境要求如下: PHP >= 5.4.0        PDO PHP Extension        MBstring P ...

  5. hdu 5969 最大的位或

    最大的位或 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  6. Every norm is a convex function

    https://ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Convex_function.html Every  ...

  7. 关于Android app的launcher图标更换后,仍然显示默认的ic_launcher图标的解决方法

    <h1>概要</h1>在做手机适配的时候,遇到了一个很奇怪的问题,在1080x720的手机可以正常显示替换的ic_launcher.png图标,但是在1920x1080的手机上 ...

  8. SAP内表转XML文件

    今天有个兄弟问如何实现以XML的方式输出内表的内容,这个问题我以前好像没有写过.倒不是不会写,而是写的方法太多了,有极其简单的,也有很复杂的,而且网上资料也很多. 找到以前写的一个程序,稍微修改了一下 ...

  9. Python程序打包成exe的一些坑

    今天写了一个项目,Python项目,需要在win7上跑起来,我想,这不是简单的不行么,直接上Pyinstaller不就完了? 但是后来,我发觉我真是too young too simple. 为什么这 ...

  10. Android SDK上手指南1:应用程序结构

    一直说要学java要学android开发,可是一直胡乱地忙活这忙活那,之前开始学了一点也中断了.说是没时间,都是借口,回顾一下自己的生活感觉缺少点激情,没有什么奋斗的动力,所以好多时间就浪费了.刚刚考 ...