//冒泡排序
function bubbleSort($arr){
for($i=0;$i<count($arr)-1;$i++){
for($j=0;$j<count($arr)-1-$i;$j++){
if($arr[$j]>$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
return $arr;
}
//选择排序
function selectSort($arr){
for($i=0;$i<count($arr)-1;$i++){
$min=$arr[$i];
$key=$i;
for($j=$i+1;$j<count($arr);$j++){
if($min>$arr[$j]){
$min=$arr[$j];
$key=$j;
}
}
$arr[$key]=$arr[$i];
$arr[$i]=$min;
}
return $arr;
}
//插入排序
function insertSort($arr){
for($i=1;$i<count($arr);$i++){
$key=$i-1;
while($key>=0&&$val<$arr[$key]){
$arr[$key+1]=$arr[$key];
$key--;
}
if(($key+1)!=$i)
$arr[$key+1]=$val;
}
return $arr;
}
//思路很特别的一种快速排序。
function quickSort($arr) {
if (count($arr) > 1) {
$k = $arr[0];
$x = array();
$y = array();
$_size = count($arr);
for ($i=1; $i<$_size; $i++) {
if ($arr[$i] <= $k) {
$x[] = $arr[$i];
} else {
$y[] = $arr[$i];
}
}
$x = quickSort($x);
$y = quickSort($y);
return array_merge($x, array($k), $y);
} else {
return $arr;
}
}
冒泡排序,选择排序,插入排序,快速排序(PHP)
本文深入探讨了四种经典排序算法——冒泡排序、选择排序、插入排序及一种优化的快速排序。通过详细步骤解析与代码实现,帮助读者理解每种算法的工作原理、优缺点及其应用场景。同时,优化的快速排序方法展示了如何通过改进减少递归调用次数,提高排序效率。
摘要由CSDN通过智能技术生成