$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. centos7 安装vnc服务

    一,安装服务器端 1,添加用户: # useradd vnc # passwd vnc 2,安装gnome桌面 # yum groupinstall "GNOME Desktop" ...

  2. 那不是Bug,是新需求

    原文作者:Jeff Atwood 自从我干上软件开发这一行.而且使用了Bug跟踪系统.我们在每个项目里都会纠结一个主要的问题:你怎么能把Bug与功能需求区分开来? 当然,假设程序崩溃了,这毫无疑问是B ...

  3. ASP.NET动态网站制作(20)-- C#(3)

    前言:C#的第三节课,继续上次课的内容,依旧围绕基础的只是讲解. 内容: 1.StringBuilder类:由于string类一旦创建,则不能更改.如果做字符串拼凑的话,将会非常耗费空间,如: str ...

  4. 记CBS一次动人心魄的数据保卫战

    接触分布式存储已经有一年多的时间了,首次遇到存储侧三份数据都有异常的情况,三份数据异常意味着客户数据的丢失,这个对云存储来讲是致命的打击.为了保证数据的安全,CBS运维和开发的同学进行了持续两天一夜的 ...

  5. Fiddler 详尽教程与抓取移动端数据包

    转载自:http://blog.csdn.net/qq_21445563/article/details/51017605 阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Stat ...

  6. 还在用 kill -9 停机?这才是最优雅的姿势(转)

    _ 最近瞥了一眼项目的重启脚本,发现运维一直在使用 kill-9<pid> 的方式重启 springboot embedded tomcat,其实大家几乎一致认为:kill-9<pi ...

  7. centos出现-bash: /usr/bin/php: 没有那个文件或目录解决方法

    造成这个的原因是因为找不到php的执行文件导致的,原先我是安装的php5.4,然后卸载了重新安装php7,导致php可执行文件没有放到$PATH中,可以在终端测试:php -v,如果报错bash: / ...

  8. 我的Android进阶之旅------>Android嵌入图像InsetDrawable的用法

    面试题:为一个充满整个屏幕的LinearLayout布局指定背景图,是否可以让背景图不充满屏幕?请用代码描述实现过程. 解决此题,可以使用嵌入(Inset)图像资源来指定图像,然后像使用普通图像资源一 ...

  9. Bootstrap学习1--响应式导航栏

    备注:最新Bootstrap手册:http://www.jqhtml.com/bootstraps-syntaxhigh/index.html <nav class="navbar n ...

  10. Navicat试用期破解方法(转)

    转载网址https://blog.csdn.net/Jason_Julie/article/details/82864187 1.按步骤安装Navicat Premium,如果没有可以去官网下载:ht ...