$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实现冒泡排序 PHP