//二分查找法  第一种方法
function erfen($x,$arr){$count=count($arr);$s=0;$h=$count-1;while ( $s<= $h) {$middle=intval(($s+$h)/2);if($arr[$middle]>$x){$h=$middle-1;}elseif($arr[$middle]<$x){$s=$middle+1;}else{return $middle;}}return -1;
}$x=8;
$arr=array(0,1,2,3,4,5,6,8,9);
$aaa=erfen($x,$arr);
echo $aaa;
//第二种方法
function binarySearch(&$array,$findVal,$leftIndex,$rightIndex){
$middleIndex=round(($rightIndex+$leftIndex)/2);
if($leftIndex>$rightIndex){
echo'查无此数<br/>';
return;
}
if($findVal>$array[$middleIndex]){
binarySearch($array,$findVal,$middleIndex+1,$rightIndex);
}elseif($findVal<$array[$middleIndex]){
binarySearch($array,$findVal,$leftIndex,$middleIndex-1);
}else{
echo"找到数据:index=$middleIndex;value=$array[$middleIndex]<br/>";
if($array[$middleIndex+1]==$array[$middleIndex]&&$leftIndex<$rightIndex){
binarySearch($array,$findVal,$middleIndex+1,$rightIndex);
}
if($array[$middleIndex-1]==$array[$middleIndex]&&$leftIndex<$rightIndex){
binarySearch($array,$findVal,$leftIndex,$middleIndex-1);
}
}
}$x=8;$arr=array(0,1,2,3,4,5,6,8,9);$count=count($arr);$s=0;$h=$count-1;$aaa=binarySearch($arr,$x,$s,$h);echo $aaa;
//顺序查找法function seq_sch($array, $n, $k){for($i=0; $i<$n; $i++){if($array[$i]==$k){break;}
}if ($i<$n){return $i;}else{return -1;}
}
$x=8;
$arr=array(0,1,2,3,4,5,6,8,9);
count=count($arr);
$aaa=seq_sch($arr,,$count,$x);
echo $aaa;

二分查找法、顺序查找法相关推荐

  1. 查找算法:二分查找、顺序查找

    08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...

  2. C语言丨线性查找(顺序查找)

    程序员在程序设计时常常需要对存储在数组中的大量数据进行处理,如排序.查找等.使用数据库时,用户可能需要频繁通过输入键字值来查找相应的记录.在数组中搜索一个特定元素的处理过程,称为查找.这次我们来介绍一 ...

  3. php顺序查找法,php二分查找、顺序查找算法

    摘要:php查找数组元素有内置的函数array_search和in_array,顺序查找对数组排序没有要求,二分查找法要求数组必须是一个有序数组!1.顺序查找function sequence_sea ...

  4. 经典查找算法 - 顺序查找法

    查找-是最常见的数据操作之一,数据结构核心运算之一,其重要性不言而喻. 顺序查找是人们最熟悉的查找策略,对于小规模的数据,顺序查找是个不错的选择. 1. 顺序查找: 核心:从数据的第一个元素开始,依次 ...

  5. 查找:顺序查找、二分查找、分块查找

    一.顺序查找 按索引顺序查找,可用于查找无序序列 int SequenceSearch(vector<int> seq, int key) {const int c_len = seq.s ...

  6. 查找(顺序查找、二分查找、插值查找)

    查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录). 查找表分类:静态查找表和动态查找表. 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删 ...

  7. 数据结构——线性表的查找:顺序查找、设置监视哨的顺序查找、折半查找

    算法7.1顺序查找 #include<iostream> using namespace std;typedef int KeyType; typedef int InfoType; #d ...

  8. 数据结构与算法笔记(十二)—— 查找算法(顺序查找、二分法查找)

    搜索是在一个项目集合中找到一个特定项目的算法过程.搜索通常的答案是真的或假的,因为该项目是否存在.搜索的几种常见方法:顺序查找.二分法查找.二叉树查找.哈希查找 一.顺序查找 最基本的查找技术,过程: ...

  9. 数据结构—查找(顺序查找和折半查找)

    1.顺序查找的查找表的数据结构 typedef struct{Elemtype *elem;int TableLen; //表的长度 }SeqList; 2.顺序查找的主要代码 //一般线性表的顺序查 ...

  10. C/C++ 折半查找与顺序查找【对比分析】

    在线性表的顺序存储结构中用到的查找方式莫过于顺序查找和折半查找: 尽管顺序查找的时间复杂度为O(n), 折半查找的时间复杂度为O(log2n),相比之下折半查找就显得效率更高, 但是二者使用的场合不同 ...

最新文章

  1. matlab算法开发与C++调用
  2. CentOS文件权限管理
  3. C语言项目:图形马赛克处理技术
  4. 研发管理---(1)持续交付
  5. python 发送 smtp
  6. stm32 串口2空闲中断死机_STM32F373 串口空闲中断问题
  7. 手把手入门三菱PLC FX2N系列(一)安装GX works2 、 连接PLC、基本操作
  8. eplan中断点编号_eplan中断点怎么关联
  9. 公式冒号是什么意思_冒号是什么意思
  10. 用场景应用™玩转#冰桶挑战#
  11. itween的抛物线线性移动
  12. 美国乳品公司试点区块链技术改善食品供应链
  13. 招聘工作者和面试官的特征
  14. 【每日早报】2019/05/30
  15. Py之matplotlib-seaborn :核密度估计(KDE)分析/奇异点分析/相关性分析简、绘图的高级进阶之高级图可视化(直方图-箱线图-密度图-小提琴图等)简介、代码实现之详细攻略
  16. 计算机毕业设计SpringBoot美容院后台管理系统[包运行成功]
  17. Unidirectional TSP UVA - 116(多阶段决策+输出字典序最小的路径)
  18. 【BP分类】基于哈里斯鹰算法优化BP神经网络实现数据分类含Matlab源码
  19. 2021-11-28 英语6级(议论文)
  20. 记--吃喝玩乐在广州

热门文章

  1. .Net软件工程师必备面试题134道
  2. UDP和TCP的优缺点
  3. purge table table_name的一点测试!
  4. Spring.Resource与Spring资源获取方式
  5. gzip, gunzip, zcat - 压缩或展开文件
  6. Android内存优化2—使用软引用和弱引用
  7. JIRA6.3.6中设置用户的解决问题和关闭问题权限
  8. 年轻工程师如何锻炼成高手的
  9. powergrep linux版本,PowerShell实现简单的grep功能
  10. python用户界面导入图片_python学习笔记之11:图像用户界面