php木桶排序
来源:互联网 发布:gp6打谱软件 mac 编辑:程序博客网 时间:2024/06/02 16:29
<?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];
}
}
//产生桶
$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){
$res[] = $k;
}
}
return $res;
}
//-------------------------------------------数据测试--------------------------
$array = array(12,23,45,14,45,32);
var_dump(bucketSort($array));
/**
木桶排序:主要是利用空间换取时间复杂度,但是有一定的局限性,一般项目中使用快速排序的比较多
主要考察知识点: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];
}
}
//产生桶
$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){
$res[] = $k;
}
}
return $res;
}
//-------------------------------------------数据测试--------------------------
$array = array(12,23,45,14,45,32);
var_dump(bucketSort($array));
0 0
- php木桶排序
- 木桶排序
- 木桶排序-扑克牌
- PHP 实现木桶算法
- 算法原理系列:木桶排序
- 啊哈算法java实现 --木桶排序
- JAVA排序之木桶排序 和 冒泡排序
- 木桶定律
- 木桶效应
- 再看木桶
- 木桶理论
- 木桶理论
- 【木桶理论】
- 木桶法则
- 木桶效应
- 木桶肥牛鸭肠
- 木桶理论
- 木桶论新解
- java.lang.RuntimeException: java.lang.NullPointerExcept的处理
- 记录一点关于CMAKE的交叉编译
- jquery ajax parsererror was not called
- swift动态编写NSPredicate
- Android 自定义View (四) 视频音量调控
- php木桶排序
- 编译时候如何配置连接库的搜索路径
- 一个七位数只能由1,2,3,4,5,6,7组成的,不能重复,从大到小求第2014个数是多少
- Android 仿Win8的metro的UI界面(上)
- linux内核时间管理
- C++(四)define 可变参数宏
- Android自定义控件——仿优酷圆盘菜单
- dm
- 资妆撰左昨撞拙醉综子子坠锥紫阻棕灼宗