1.快速
//快速排序
function quick($sort = []){
//假设第一个是中间
$len = count($sort);
if($len <= 1){
return $sort;
}
$mid = $sort[0];
$left = [];
$right = [];
foreach($sort as $value){
if($value<$mid){
$left[] = $value;
}
if($value>$mid){
$right[] = $value;
}
}
$left = quick($left);
$right = quick($right);
$arr = array_merge($left,[$mid],$right);
return $arr;
}
print_r(quick([6,5,2,1,5,9,11,3,32]));
2.冒泡
function maopao($sort){
for($i=0;$i<count($sort) – 1;$i++){
for($j=$i;$j<count($sort) – $i-1;$j++){
if(isset($sort[$j]) && isset($sort[$j+1])){
if($sort[$j]>$sort[$j+1]){
$temp = $sort[$j];
$sort[$j] = $sort[$j+1];
$sort[$j+1] = $temp;
}
}
}
}
return $sort;
}
print_r(maopao([2,1,5,9,11,3,32]));
3.选择
function sel($sort = []){
//判断数组长度
$len = count($sort);
if($len<=0){
return [‘msg’=>’空数组不能排序’];
}
//默认$i最小
for($i=0;$i<$len;$i++){
for($j=$i+1;$j<$len;$j++){
if($sort[$i]>$sort[$j]){
$temp = $sort[$j];
$sort[$j] = $sort[$i];
$sort[$i] = $temp;
}
}
}
return $sort;
}
print_r(sel([2,1,5,9,11,3,32]));
4.桶排序
function tong($sort=[]){
//需要排序的数组
if(empty($sort)){
return [‘msg’=>’要排序的数组不能为空’];
}
$min = min($sort);
$max = max($sort);
$arr = array_fill($min,$max,0);
//根据数组排序
foreach($sort as $value){
$arr[$value] +=1;
}
$arr_sort = [];
foreach($arr as $key=>$value){
if($value > 0){
for($i=0;$i<$value;$i++){
$arr_sort[] = $key;
}
}
}
return $arr_sort;
}
print_r(tong([2,5,5,5,9,11,3,32]));