首页 > 代码库 > 一些算法
一些算法
//木桶排序
/* 首先产生两个数字,最大值和最小值,然后根据两个数字的值决定要创建多少个桶装数据,
每个 桶装数据按key编好号码,按数组内的数字指定桶的出现次数。
然后输出所有指定桶。木桶算法是不稳定算法。
*/
$count = array(6,10,4,12,4,90,33);
function mutong($max,$array)
{
//填充木桶
$arr = array_fill(0, $max, 0);//函数用给定的键值填充数组
//开始标示木桶
for($i = 0; $i<=count($array)-1 ; $i++){
//var_dump($array[$i]);
isset($arr[$array[$i]])? $arr[$array[$i]]++ : "";
}
$mutomg = array();
//开始从木桶中拿出数据
for($i = 0; $i<= $max ; $i++){
$arr[$i] = isset($arr[$i]) ? $arr[$i] : "";
for($j = 1; $j <= $arr[$i]; $j++){ //这一行主要用来控制输出多个数字
$mutong[] = $i;
}
}
return $mutong;
}
$max = max($count);//90
print_r(mutong($max,$count));
//冒泡算法
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
function getpao($arr)
{
$len=count($arr);
//设置一个空数组 用来接收冒出来的泡
//该层循环控制 需要冒泡的轮数
for($i=1;$i<$len;$i++){ //该层循环用来控制每轮 冒出一个数 需要比较的次数
for($k=0;$k<$len-$i;$k++){
if($arr[$k]>$arr[$k+1]){
$tmp=$arr[$k+1];
$arr[$k+1]=$arr[$k];
$arr[$k]=$tmp;
}
}
}
return $arr;
}
var_dump(getpao($arr));
一些算法