PHP区块查询实现方法分析

yipeiwu_com6年前PHP代码库

本文实例讲述了PHP区块查询实现方法。分享给大家供大家参考,具体如下:

分块查询是介于顺序查询和折半查询之间的一种查询方法。

其实折半查询就是每次折半的分块查询,那么分块查询就是把数组分成区块,然后每个区块进行查询的查询方法。

本例的数组是已经排序号的,分块后进行顺序查询。

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++;//每比较一次,位置后移一次
    }
  }
}
?>

运行结果:

value:1;position:0

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

解决File size limit exceeded 错误的方法

昨日遇到一个问题,使用Yii框架编写php脚本,将db中100多万的数据导出,运行,成功。 但是在 运行到第 49万条时,脚本终止,提示错误“File size limit exceed...

php生成网页桌面快捷方式

php生成网页桌面快捷方式

本文将介绍使用PHP生成网页桌面快捷方式的代码,并添加图标及解决不同浏览器保存出现的乱码问题。 我们访问网站时,如果网站的内容很有吸引,一般我们都会使用浏览器的收藏夹功能,收藏此网站。...

php图片加水印原理(超简单的实例代码)

文字水印: 复制代码 代码如下: $w = 80; $h = 20; $im = imagecreatetruecolor($w,$h); $textcolor = imagecolor...

PHP set_time_limit(0)长连接的实现分析

每个PHP脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush() 和 ob_flush() 来清除服务器缓冲区,...

linux下使用ThinkPHP需要注意大小写导致的问题

弄了一下午,偶然想起linux是识别文件大小写的,查看了一下代码,发现实例化类的时候并没有注意文件大小写。如 $dao = D("inventoryview") 对应的视图文件是Inve...