赞
踩
描述:
function insertSort($arr){
if(!is_array($arr)) return false;
//外层循环插入次数
for($i=1;$i<count($arr);$i++){
$tmp = $arr[$i];//要插入的元素
//内层循环比较和插入
for($j=$i-1;$j>=0;$j--){
//发现要插入的元素小
if($tmp < $arr[$j]){
//将后边的元素和前面的元素交换
$arr[$j+1]=$arr[$j];
//把前面的数设置为当前需要交换的数
$arr[$j] = $tmp;
}
}
}
return $arr;
}
描述:
/**
* 非递归版 二分查找
*
* @param array $container
* @param $search
* @return int|string
*/
function BinaryQuery(array $container, $search)
{
$top = count($container);
$low = 0;
while ($low <= $top) {
$mid = intval(floor(($low + $top) / 2));
if (!isset($container[$mid])) {
return '没找着哦';
}
if ($container[$mid] == $search) {
return $mid;
}
$container[$mid] < $search && $low = $mid + 1;
$container[$mid] > $search && $top = $mid - 1;
}
}
/**
* 递归版 二分查找
*
* @param array $container
* @param $search
* @param int $low
* @param string $top
* @return int|string
*/
function BinaryQueryRecursive(array $container, $search, $low = 0, $top = 'default')
{
$top == 'default' && $top = count($container);
if ($low <= $top) {
$mid = intval(floor($low + $top) / 2);
if (!isset($container[$mid])) {
return '没找着哦';
}
if ($container[$mid] == $search) {
return $mid;
}
if ($container[$mid] < $search) {
return BinaryQueryRecursive($container, $search, $mid + 1, $top);
} else {
return BinaryQueryRecursive($container, $search, $low, $mid - 1);
}
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。