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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    /**
     * 冒泡排序
     */
    $list = Array(6,8,7,2,3,4,1);
    echo "排序前";
    print_r($list);
    function mao($arr){
        for($i=1,$len=count($arr);$i<$len;++$i){ // 外层循环 数组个数-1     也就是找几次最大数,找出数组个数-1个就可以了
            for($k=0,$klen=$len-$i;$k<$klen;++$k){ // 内层循环,比较两个数组元素   第一次循环找出最大的那个
                if($arr[$k]>$arr[$k+1]){
                    $temp = $arr[$k];
                    $arr[$k] = $arr[$k+1];
                    $arr[$k+1] = $temp;
                }
            }
        }
        return $arr;
    }
    echo "<br/>排序后";
    print_r(mao($list));

      在做冒泡的过程中,思路一直在别人的思想中,在百度的过程中,看到另一种方法,觉得不错也写过来了:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $list = Array(6,8,7,2,3,4,1);
    echo "排序前";
    print_r($list);
    function mao($arr){
        for($i=0,$len=count($arr)-1;$i<$len;++$i){ // 外层循环 进行第一层遍历
            // 内层循环,在外层的基础上加一,来控制两个元素的比较
            for($k=$i+1;$k<=$len;++$k){
                if($arr[$i]>$arr[$k]){
                    $temp = $arr[$i];
                    $arr[$i] = $arr[$k];
                    $arr[$k] = $temp;
                }
            }
        }
        return $arr;
    }
    echo "<br/>排序后";
    print_r(mao($list));

      

  • 相关阅读:
    UVA 11384 Help is needed for Dexter(问题转化 递归)
    UVA 11991 Easy Problem from Rujia Liu?(vector map)
    poj 2656 Unhappy Jinjin
    解析磁盘0号扇区数据
    树的非递归遍历
    iOS项目开发实战——使用同步请求获取网页源码
    单点登录cas常见问题(四)
    bzoj2115【WC2001】Xor
    最小化JavaScript代码
    quick-cocos2d-x教程9:实例之加上背景图片
  • 原文地址:https://www.cnblogs.com/yzycoder/p/4761203.html
Copyright © 2011-2022 走看看