/*冒泡排序*/
$arr = [14,18,19,37,23,40,29,30,11,7,2,1,8,6,3,5,4,5,4] ;
$sorted_arr = bubbleSort($arr,count($arr));
myPrint($sorted_arr); // 1 2 3 4 4 5 5 6 7 8 11 14 18 19 23 29 30 37 40 [Finished in 0.1s]
/* @$arr 待排序数组
@$count 需处理的长度
*/
function bubbleSort($arr,$count)
{
for ($i=0; $i <$count ; $i++) {
if($i+1<$count && $arr[$i]>$arr[$i+1]){ // 逆序对
swap($arr,$i,$i+1);
}
}
if($count-1==1){
return $arr;
}else{
return bubbleSort($arr,$count-1);
}
}
/*自定义格式数组输出*/
function myPrint($arr){
foreach ($arr as $value) {
echo $value." " ;
}
echo "\n";
}
/*交换索引指向的元素*/
function swap(&$arr,$i,$j){
$tmp =$arr[$j];
$arr[$j] =$arr[$i];
$arr[$i] =$tmp;
}
网友评论