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程序设计有所帮助。
相关推荐
-
PHP有序表查找之插值查找算法示例
本文实例讲述了PHP有序表查找之插值查找算法.分享给大家供大家参考,具体如下: 前言: 在前面我们介绍了二分查找,但是我们考虑一下,为什么一定要折半呢?而不是折四分之一或者更多? 打个比方,在英文词典里查找"apple",你下意识里翻开词典是翻前面的书页还是后面的书页呢?如果再查"zoo",你又会怎么查?显然你不会从词典中间开始查起,而是有一定目的地往前或往后翻. 同样,比如要在取值范围在 0 ~ 10000 之间的100个元素从小到大均匀分布的数组中查找5,我们自
-
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
复制代码 代码如下: /* *功能:对URL进行编码 *参数说明:$web_url 网站URL,不包含"http://",例如jb51.net */ function HashURL($url){ $SEED = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer."; $Result = 0x01020345; for ($i=0; $i&l
-
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
数据结构很重要,算法+数据结构+文档=程序使用PHP描述冒泡排序算法,对象可以是一个数组 复制代码 代码如下: //冒泡排序(数组排序)function bubble_sort($array) {$count = count($array);if ($count <= 0)return false;for($i=0; $i<$count; $i++){for($j=$count-1; $j>$i; $j–){if ($array[$j] < $array[$j-1]){$tmp =
-
使用PHP实现二分查找算法代码分享
第一种方法: [二分查找要求]:1.必须采用顺序存储结构 2.必须按关键字大小有序排列. [优缺点]折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表. [算法思想]首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表. 复制代码 代码如下: <?
-
php数据结构与算法(PHP描述) 查找与二分法查找
复制代码 代码如下: <?php /** * 查找 * **/ // 顺序查找 function normal_search($arrData,$val) { $len = count($arrData); if($len == 0) return -1; for($i = 0;$i < $len; $i++ ) { echo "find No.",$i + 1," value = ",$arrData[$i]," is = ",$v
-
php顺序查找和二分查找示例
复制代码 代码如下: <?php class search{ // 查找的源数组 private $array = array(1,2,3,5,7,6,4,8); /** * 顺序查找法 * @param $val 要查找的值 */ public function query_search($val) { foreach ($this->array as $k => $v) { if($v == $val) { echo '顺序查找成功!'; exit(0)
-
PHP实现的折半查询算法示例
本文实例讲述了PHP实现的折半查询算法.分享给大家供大家参考,具体如下: 什么是折半查询算法?具体文字描述自己百度.直接上代码: <?php header("Content-type: text/html; charset=utf-8"); /* 折半查询算法--不用递归 */ function qSort($data = array(), $x = 0){ $startIndex = 0; // 开始索引 $endIndex = count($data) - 1; // 结束索
-
PHP实现的折半查找算法示例
本文实例讲述了PHP实现的折半查找算法.分享给大家供大家参考,具体如下: 定义:折半查找技术,也就是二分查找.它的前提是线性表中的记录必须是关键码有序(通常从大到小有序),线性表必须采用顺序存储. 折半查找的基本思想:取中间记录作为比较对象,若给定值与中间记录的关键字,则在中间记录的关键字相等,则查找成功:若给定值小于中间记录的作伴去继续查找:若给定值大于中间记录的关键字,则在中间记录的右半区继续查找.不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失败为止. 实现代码: <?php
-
PHP有序表查找之二分查找(折半查找)算法示例
本文实例讲述了PHP有序表查找之二分查找(折半查找)算法.分享给大家供大家参考,具体如下: 简介: 二分查找技术,又称为折半查找.它的前提是线性表中的记录必须是关键码有序(通常从小到达有序),线性表必须采用顺序存储. 基本思想: 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功:若给定值小于中间记录的关键字,则在中间记录的左半区继续查找:若给定值大于中间记录的关键字,则在中间记录的右半区继续查找.不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失败为止.
-
php线性表顺序存储实现代码(增删查改)
复制代码 代码如下: <?php /* *文件名:linearList.php * 功能:数据结构线性表的顺序存储实现 * author:黎锦焕 * @copyright:www.drw1314.com */ class linearList { private $arr; private $length; const MAXSIZE=100; /* *构造函数,判断空表还是飞空表,并且进行实例化 * @param array $arr 输入的数组 * @param int $n 输入数组的长度
-
PHP基于二分法实现数组查找功能示例【循环与递归算法】
本文实例讲述了PHP基于二分法实现数组查找功能.分享给大家供大家参考,具体如下: 二分法.分别使用while循环的方法和递归调用的方法. <?php // 二分法的使用数组必须是有序的,或升序,或降序 $arr = array( 1, 3, 5, 7, 9, 13 ); // 递归调用(相比较好理解 function bsearch_r($v, $arr, $low, $high){ if ($low > $high) {// 先判断结束条件 return -1; } $i = intval(
-
PHP二分查找算法示例【递归与非递归方法】
本文实例讲述了PHP二分查找算法.分享给大家供大家参考,具体如下: binarySearch 二分查找采用的方法比较容易理解,以数组为例: ① 先取数组中间的值floor((low+top)/2), ② 然后通过与所需查找的数字进行比较,若比中间值大,则将首值替换为中间位置下一个位置,继续第一步的操作:若比中间值小,则将尾值替换为中间位置上一个位置,继续第一步操作 ③ 重复第二步操作直至找出目标数字 比如从1,3,9,23,54 中查找数字23, 首位置为0, 尾位置为4,中间位置就为2 值为9
随机推荐
- JBuilder2005开发Web应用程序
- webpack独立打包和缓存处理详解
- js关闭浏览器窗口及检查浏览器关闭事件
- js实现手机发送验证码功能
- C# 可空类型分析
- yii2.0数据库迁移教程【多个数据库同时同步数据】
- Laravel中的Auth模块详解
- zf框架的zend_cache缓存使用方法(zend框架)
- PHP截取IE浏览器并缩小原图的方法
- php递归实现无限分类的方法
- 全面解析Bootstrap排版使用方法(文字样式)
- javascript中eval和with用法实例总结
- 分享ajax的三种解析模式
- JS获取checkbox的个数简单实例
- ADO.NET EF中的实体修改方法
- 轻松设置拒绝windows 2003泄密
- AWStats简介:Apache/IIS的日志分析工具
- Android中复制图片的实例代码
- 动态生成gif格式的图像要注意?
- Cisco设备做流量监控得方法