php冒泡排序和快速排序
程序员文章站
2022-05-27 20:03:29
...
php代码
<?php $arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5); //交换两值 function swap(&$m, &$n){ $temp = $m; $m = $n; $n = $temp; /* 如数组中有小数时,以下方法会省略小数点后面的数 $m = $m ^ $n; $n = $m ^ $n; $m = $m ^ $n; */ } //冒泡排序 function bubbleSort($arr){ if(!is_array($arr)) return $arr; $count = count($arr); for($i=1; $i<$count; $i++){ for($j=0; $j $arr[$j+1]){ /* $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $temp; */ /* $arr[$j] = $arr[$j] + $arr[$j+1]; $arr[$j+1] = $arr[$j] - $arr[$j+1]; $arr[$j] = $arr[$j] - $arr[$j+1]; */ /* $arr[$j] = $arr[$j] ^ $arr[$j+1]; $arr[$j+1] = $arr[$j] ^ $arr[$j+1]; $arr[$j] = $arr[$j] ^ $arr[$j+1]; */ swap($arr[$j], $arr[$j+1]); } } } return $arr; } $arr2 = bubbleSort($arr); echo implode(',', $arr2).''; //冒泡排序 function bubbleSort2($arr){ if(!is_array($arr)) return $arr; $count = count($arr); for($i=0; $i<$count-1; $i++){ for($j=$i+1; $j<$count; $j++){ if($arr[$i] < $arr[$j]){ /* $arr[$i] = $arr[$i] + $arr[$j]; $arr[$j] = $arr[$i] - $arr[$j]; $arr[$i] = $arr[$i] - $arr[$j]; */ swap($arr[$i], $arr[$j]); } } } return $arr; } $arr3 = bubbleSort2($arr); echo implode(',', $arr3).'';; //快速排序 function quickSort($arr){ if(!is_array($arr)) return $arr; $len=count($arr); for($i=0; $i<$len; $i++){ $min = $arr[$i]; for($j=$i+1; $j $arr[$j]){ $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; } } $min = $arr[$j]; } return $arr; } $arr4 = quickSort($arr); echo implode(',', $arr4); ?>