分块查询是介于顺序查询和折半查询之间的一种查询方法。
其实折半查询就是每次折半的分块查询,那么分块查询就是把数组分成区块,然后每个区块进行查询的查询方法。
本例的数组是已经排序号的,分块后进行顺序查询。
php代码:
<?php
$arr = array(1,2,3,4,5,6,7,8,9,10);
print_r(blockSearch(3,1,$arr));
function blockSearch($block,$key,$arr){
$length = count($arr);
$position = 0;
while($length >= $position){//数组元素比较完了,就结束循环
for($i=1;$i<=$block;$i++){//循环次数为定义的块的大小
if($arr[$position] == $key){//找到了元素
return 'value:'.$arr[$position] .';position:'.$position;
}
$position++;//每比较一次,位置后移一次
}
}
}
?>