博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP算法之二分查找和顺序查找
阅读量:4587 次
发布时间:2019-06-09

本文共 1133 字,大约阅读时间需要 3 分钟。

一、二分查找 (数组里查找某个元素)

1 /** 2  * 二分查找 (数组里查找某个元素) 3  * $k为要查找的关键字(注:待查找的数组元素为奇数个)$low为查找范围的最小键值,$high为查找范围的最大键值   4  */ 5 $low = min(array_keys($array)); 6 $high = max(array_keys($array)); 7 function dichotomy_search($array, $low, $high, $k) { 8     if ($low <= $high) { 9         $mid = intval ( ($low + $high) / 2 );10         if ($array [$mid] == $k) {11             return $mid;12         } elseif ($k < $array [$mid]) {13             return dichotomy_search ( $array, $low, $mid - 1, $k );14         } else {15             return dichotomy_search ( $array, $mid + 1, $high, $k );16         }17     }18     return -1;19 }

二、顺序查找 (数组里查找某个元素)

1 /** 2  * 顺序查找 (数组里查找某个元素) 3  * $array为数组,$k为要查找的值   4  */ 5 function sequential_search($array, $k) { 6     $n = count($array); 7     $array[$n] = $k;                //新建一个元素,并将k存放进去   8     for($i = 0; $i < $n; $i++) { 9         if($array[$i] == $k) {10             break;11         }12     }13     if($i < $n) {                 //如果在新元素的前面找到了要找的值,则返回该值 14         return $i;15     } else {16         return -1;17     }18 }

 

转载于:https://www.cnblogs.com/h07061108/p/sequential_dichotomy.html

你可能感兴趣的文章
ASP.NET 开发人员不必担心 Node 的五大理由
查看>>
插入排序(1)——直接插入排序(insert sort)
查看>>
voltdb数据库持久性,扩展集群
查看>>
2018 焦作网络赛 L Poor God Water ( AC自动机构造矩阵、BM求线性递推、手动构造矩阵、矩阵快速幂 )...
查看>>
2017年终总结
查看>>
PowerPoint笔记(五)
查看>>
使用线程 Monitor.Wait() 和 Monitor.Pulse()
查看>>
c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
查看>>
C# FTP上传下载(支持断点续传)
查看>>
JMeter学习(一)JMeter的安装和目录解析
查看>>
Python int与string之间的转化
查看>>
Go之函数直接实现接口
查看>>
TCP的拥塞控制 (四)
查看>>
C#学习笔记(十三):I/O操作
查看>>
1531 山峰 【栈的应用】
查看>>
第一次结对作业
查看>>
HDU 3389 Game (阶梯博弈)
查看>>
向量旋转公式推导
查看>>
各种 Spring-Boot-Starters系列 介绍
查看>>
分布式服务框架的热挂载以及多版本共存的简析与实现
查看>>