php中其实已经实现了基本的冒泡算法 升序降序等等:对数组进行排序
下面参考:冒泡排序法原理讲解及PHP代码示例 - 温柔的风 - 博客园
手动实现:
<?php
//从小到大排序
function sort_arr($array){
$count = count($array);
$temp = 0; //临时变量声明
for($i = 0; $i < $count - 1; $i ++) { //控制轮数
for($j = 0; $j < $count - 1 - $i; $j ++) { //控制每轮次数
if ($array[$j] > $array[$j +1]) {
$temp = $array[$j]; //临时变量存放
$array[$j] = $array[$j + 1]; //交换位置
$array[$j + 1] = $temp; //交换位置
}
}
}
return $array;
}
$array = [64, 56, 31, 68, 6];
print_r( sort_arr($array) );
<?php
// 冒泡排序 从大到小
function arrSort($arr)
{
$len = count($arr); // 数组长度
for ($i=0; $i < $len-1; $i++) {
for ($j=0; $j < $len-1-$i; $j++) {
if($arr[$j] < $arr[$j+1]){ // 相邻两个值作比较,选出小的那个值,交换位置,然后继续往后做比较直到数组最后一个值
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
|