php四种基础排序(基础算法)----①冒泡排序法

冒泡排序法:

 顾名思义,如冒泡泡一样,每次将数组中最大的数冒出来

  举例: 
    2,3,1.
    第一次先将3冒出来,变成-------->  2,1,3
    第二次再讲2冒出来,变成--------->1,2,3
    至此 排序结束  结果为 1,2,3.

代码如下:

<?php
$arr=array(10,57,12,45,78,32,65,94,14); 
function maopao($arr)

   //求出该数组的长度
  $len=count($arr);
 
  //最外层的for循环 控制需要冒泡的轮数
  //让i=1,是为了内层的for循环中k的条件
  for($i=1;$i<$len;$i++)
  { //该层循环用来控制每轮 冒出一个数 需要比较的次数
     //第一轮时的数据为 $arr[$k=0]和$arr[$k+1=1]时比较,如果前面的数大于后面的数,那么两个数交换位置,大的数就在后面了,前面的数就在前面
    //$k<$len-$i是因为至少内层for循环后返回外层继续循环,$len-$i就是控制每轮冒出一个数,两两相对比
    for($k=0;$k<$len-$i;$k++)
    {
       if($arr[$k]>$arr[$k+1])
        {
            $tmp=$arr[$k+1];
            $arr[$k+1]=$arr[$k];

            $arr[$k]=$tmp;

             //采用一种更简单高级的方法  

           //list($array[$k+1], $array[$k]) = array($array[$k], $array[$k+1]);

        }
    }
  }
  return $arr;
}
//使用了数据格式化,方便清楚的看到数据
echo "<pre/>";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值