直接上代码,下面演示的是从低到高排序,也可以新增参数DESC变成从高到低排序
$mpArr = array(10,2,4,6,3,1,3,2,5,9,8,7);
$mpArr = maopao($mpArr);
print_r($mpArr);
/**
*
* 用从小到高的排序说明逻辑:这里我们就需要两次用到for循环 。通过第一个for循环来控制数据比较的轮次数,然后通过第二个for循环来控制次数并判断大小交换位置 。那么这里的if语句判断的思路就是,如果当前值大于后面的值,就交换位置,把大的值给临时变量$tmpVal 。后面的小值替换大值,大值替换小值 。
* @param $arr
* @param string $type
*/
public function maopao($arr,$type='ASC'){
$len = count($arr);
$n = $len-1;
for ( $i=0; $i<$len; $i++ ){
for ( $j = 0;$j<$n;$j++ ){
switch ($type){
case 'ASC': //从小到大排序
//当前值大于下个值
if( $arr[$j] > $arr[ $j+1 ] ){
//如果当前的值大于下一个值,放到一个临时数组里
$tmpVal = $arr[$j];
//把下一个值替换当前的值
$arr[$j] = $arr[$j+1];
//把当前值替换下一个值 ,即两个位置互换
$arr[$j+1] = $tmpVal;
}
break;
case 'DESC': //从大到小排序
//当前值小于下个值
if( $arr[$j] < $arr[$j+1] ){
//当前值放到临时数组
$tmpVal = $arr[$j];
//把当前值替换成下个
$arr[$j] = $arr[$j+1];
//下个值替换成当前值,位置互换
$arr[$j+1] = $tmpVal;
}
break;
}
}
}
return $arr;
}以上代码就是php实现冒泡排序的过程,原理在函数内已经备注了;有关PHP相关的可以相互交流 。
【PHP实现冒泡排序】
推荐阅读
- PHP文件访问时提示http 404错误
- js实现websocket 数据交互
- 冒泡算法和选择排序简单demo
- php过滤只保留中文,英文以及数字的方法
- 利用jQuery实现简单的数据双向绑定
- https实现原理
- 如何设计实现一个通用的分布式事务框架?
- 苹果手机不支持通话录音!!跟着我实现苹果手机通话录音功能
- 前端实现 SVG 转 PNG
- 从底层彻底搞懂String,StringBuilder,StringBuffer的实现