PHP 实现木桶算法

来源:互联网 发布:淘宝店铺推广软文 编辑:程序博客网 时间:2024/06/10 12:18

算法思路:数组是连续存储排列而成,把待排序的值形成数组的键,输出数组。

<?php/**木桶排序:主要是利用空间换取时间复杂度,但是有一定的局限性,一般项目中使用快速排序的比较多主要考察知识点:1逻辑算法,2php中的数组函数,3php基础语法*/function bucketSort($array){//1首先产生两个数字,即最大值和最小值,然后利用两个数据产生木桶装装载数据$min = $array[0];$max = $array[0];$len = (int)count($array);for($i=1;$i<$len;++$i){   if($array[$i]<$min){     $min = $array[$i];   }elseif($array[$i]>$max){   $max = $array[$i];   }}//1产生桶$buckets = array_fill($min,$max-$min+1,0);//2统计出现的次数(在桶内统计出次数)foreach($array as $v){ ++$buckets[$v];//在桶内统计出次数}//3把桶内的数据输出来foreach($buckets  as $k=>$v){   for($i=1;$i<=$v;++$i){//$v为值出现的次数   $res[] = $k;        }    }    return $res;}//-------------------------------------------数据测试--------------------------$array = array(12,23,45,14,45,32);var_dump(bucketSort($array));
0 0
原创粉丝点击