【DAY.2】PHP数据结构与算法_排序_冒泡排序

思路分析:循环逐个对比,从第一个开始,与下一个数字进行对比,若大于则交换位置,每循环一遍将最大的一个排到最后。(依次比较相邻的元素,两两比较,就可以最终将最大(小)的元素调整到最顶端、次顶端、、、)

   
   
  1. $arr = array(3,2,5,6,1,8,4,9);
  2. function bubble_sort($arr){
  3. $len=count($arr);
  4. //判断数组是否为空
  5. if($len<=0){
  6. echo '数组不能为空';
  7. exit;
  8. }
  9. for($j=0;$j<$len-1;$j++){
  10. $tmp=false;
  11. //该层循环用来控制每轮,终将最大(小)的元素调整到最末,并设置标志位,发生变动,就置为true,
  12. for($i=0;$i<$len-1-$j;$i++){
  13. $temp=$arr[$i];
  14. if($arr[$i]>$arr[$i+1]){
  15. $tmp=true;
  16. $arr[$i]=$arr[$i+1];
  17. $arr[$i+1]=$temp;
  18. }
  19. }
  20. //如果标志位没有变动,说明,已经排序完毕,结束循环
  21. if($tmp==false){
  22. break;
  23. }
  24. }
  25. return $arr;
  26. }
  27. var_dump(bubble_sort($arr));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值