php折半查找算法,二分查找 [折半查找] 算法 PHP 版
查找表:就是同一类型的数据元素构成的数据集合
有静态表和动态表
本文实现PHP版的二分查找算法【本算法仅用于顺序存储的查找表】
/**
* Created by PhpStorm.
* User: 1655664358@qq.com
* Date: 2019/7/01
* Time: 11:38
*/
class Elem{
public $key;
}
class Table
{
public $data = [];
public $lenght;
}
function createTable(Table &$table,$length)
{
$table->lenght = $length;
$obj = new Elem();
fwrite(STDOUT,"请输入数据:\n");
for($i=1;$i<=$table->lenght;$i++){
$elem = clone $obj;
$elem->key = fgets(STDIN,10);
$table->data[$i] = $elem;
}
}
function searchBin(Table $table,$key):int
{
$low = 1;
$height = $table->lenght;
while($low<=$height){
$mid = floor(($low+intval($height))/2);
if ($table->data[$mid]->key==$key){
return $mid;
}else if($table->data[$mid]->key>$key){
$height=$mid-1;
}else{
$low = $mid+1;
}
}
return 0;
}
(function(){
$table = new Table();
fwrite(STDOUT,"请输入数据元素个数:\n");
$length = fgets(STDIN,10);
createTable($table,$length);
fwrite(STDOUT,"请输入要查找的数据元素:\n");
$key = (integer)fgets(STDIN,10);
$location = searchBin($table,$key);
if ($location){
fwrite(STDOUT,"查找到的数据索引为:$location\n");
}else{
fwrite(STDERR,"查找不到指定的内容\n");
}
})();
本作品采用《CC 协议》,转载必须注明作者和本文链接
只会php crud的渣渣
php折半查找算法,二分查找 [折半查找] 算法 PHP 版相关推荐
- 折半查找算法[二分查找法]算法的实现和解决整数溢出问题~
算法实现的要求: 折半查找法又称为二分查找法,这种方法对待查找的列表有两个要求: 1:必须采用顺序存储结构 2:必须按关键字大小有序排列 算法思想: 将表中间位置记录的关键字与查找关键字进行比较,如果 ...
- Java有序表查找:折半查找、二分查找、差值查找和斐波那契查找
Java有序表查找:折半查找.二分查找.差值查找和斐波那契查找 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51 ...
- 【数据结构----笔记1】查找算法之【顺序查找和折半查找】
#include<iostream> #include<Windows.h> using namespace std;typedef int ElemType; /*_____ ...
- 二叉树 查找失败 asl_算法——二分搜索amp;折半查找
☞能够掌握求解的算法,并给出详细的执行过程. ☞对于折半搜索二叉树中,若根结点在第1层, 且分枝结点数为= 2& − 1,则外部结点均在第ℎ + 1层. 这同样也是一种利用分治法设计的查找算法 ...
- 折半查找(二分查找)的理解
目录 折半查找的算法思想 查找过程演示 折半查找的判定树 代码实现 折半查找的算法思想 折半查找又称二分查找,仅适用于有序的顺序表 首先将给定值key与表中中间位置元素的关键字比较, 若相等,则返回该 ...
- 折半查找(二分查找)
折半查找(二分查找) 1.折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, 则搜索过程结束: ...
- 查找技术——折半查找(二分查找)
写此博客,记录学习. 折半查找又可称作二分查找. 一.基本思想: 其算法就是将表中的数据分为两个区域(左半区和右半区),查找目标target与表的中间值mid进行大小比较.表中数据存储在一维数组中. ...
- python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...
查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...
- 让你秒懂的折半查找(二分查找)
折半查找又称二分查找,只能适用于有序的顺序表. //折半查找 int Bsearch(int R[],int low,int high,int key){int min;while(low<=h ...
- 递归法实现折半查找(二分查找)
题目 递归法实现折半查找(二分查找) 分析 设立low代表数组最小端的数组下标,high代表数组最大端的数组下标,mid代表数组中间值的数组下标 查询数字number与mid进行比较,有四种情况: 1 ...
最新文章
- C/C++ 全局变量和局部变量在内存里的区别?堆和栈
- ​MySQL服务器调优思路图
- Prepare the Knowledge Base for Success
- php随机数、时间、字符串函数,正则,数组函数
- nginx log response_python+pandas分析nginx日志的实例
- 【Spring】JSP 九大内置对象、作用域复习
- 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function
- 垃圾收集器准则和提示
- 【原】npm 常用命令详解
- Linux查看和修改IP地址
- python-函数入门(二)
- 想要成为一名优秀的程序员?这8本书告诉你
- IAR 软件的安装教程
- bing搜索引擎子域名收集(Python脚本)
- win10清除磁盘写保护
- VC++连接wifi功能(有密码)源代码
- vs2015 :“64位调试操作花费的时间比预期要长“,无法运行调试解决办法
- BigWorld—chunck系统
- zip和tgz以及exe的区别
- h5 cookie获取和设置