您的位置 首页 php

php基础算法

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]));

文章来源:智云一二三科技

文章标题:php基础算法

文章地址:https://www.zhihuclub.com/150706.shtml

关于作者: 智云科技

热门文章

网站地图