php冒泡排序法
PHPz
PHPz 2017-04-11 10:09:31
[PHP讨论组]


怎么最后一个就是排不上

PHPz
PHPz

学习是最好的投资!

全部回复(4)
ringa_lee

应该让第一个for中的 $i=0

================================
估计你抄错了,把 $i 抄 成 $j 了。

看到评论有点反应过激了,好人做到底吧
没有分析题主的思路,想当然的回答
被骂做 背代码,纯属活该

================================

高洛峰

循环的次数不对,$j
第二层循环应该是 -$i,而不是减去$j

伊谢尔伦
$arr = array(21,7,5,23,2);
var_dump($arr);
$long = count($arr);
for($i=0;$i<$long;$i++){
    for($j=0;$j<$long-$i-1;$j++){
        if($arr[$j]>$arr[$j+1]){
            $x = $arr[$j+1];
            $arr[$j+1]=$arr[$j];
            $arr[$j]=$x;
        }
    }
}
var_dump($arr);
PHPz

每次循环把最大的往下沉
i是循环整个数组
那么j的时候,第一次肯定要都比较
第二次开始,由于每次都下沉一个最大的数,也就是多每次可以比之前少比较一次

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号