zoukankan      html  css  js  c++  java
  • PHP冒泡排序法

    冒泡排序法是一种很基础的排序方法,也是面试题中经常问到的一道题目.今天做了一下简单的分析,具体代码和思路如下。

     1 $array = array(12,45,877,35,545,87,32,2,48,966,252);
     2 
     3     function bubbling($arr){
     4         $length=count($arr);
     5         for($i=0;$i<$length;$i++){
     6             //$length-$i-1:第一次循环$arr[0]除了不和自己比较外要和其他的$length-1个元素比较
     7             //第一次循环后可以确定数组最后一个元素是最小的,所以可以不参与后面的比较,所以第二次循环
     8             //$arr[1]除了不和自己比较外还不和最后的一个元素比较,所以比较$length-$i-1次
     9             for($j=0;$j<$length-$i-1;$j++){
    10                 //如果后面的元素比前面的元素大,就调换位置,需要借助中间变量$tmp
    11                 if($arr[$j]<$arr[$j+1]){
    12                     $tmp=$arr[$j];
    13                     $arr[$j]=$arr[$j+1];
    14                     $arr[$j+1]=$tmp;
    15                 }
    16             }
    17         }
    18         return $arr;
    19 
    20     }
    21 
    22     $list=bubbling($array);
    23     var_dump($list);

    排序后的结果为:array(11) { [0]=> int(966) [1]=> int(877) [2]=> int(545) [3]=> int(252) [4]=> int(87) [5]=> int(48) [6]=> int(45) [7]=> int(35) [8]=> int(32) [9]=> int(12) [10]=> int(2) }

  • 相关阅读:
    u3d Mecanim动画
    四元数的共轭和逆
    c++ 单例模式
    GVIM、VIM
    Linux磁盘管理——虚拟文件系统
    Linux磁盘管理——MBR 与 GPT
    Link monitoring
    Linux高级网络设置——将多个网卡设置成一个网卡
    Linux高级网络设置——给网卡绑定多个IP
    DNS原理极限剖析
  • 原文地址:https://www.cnblogs.com/iaknehc/p/5971570.html
Copyright © 2011-2022 走看看