php数据结构与算法(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 = ",$val,"? <br/>";
// 找到了
if($arrData[$i] == $val) return $i;
}
return -1;
}

// 测试顺序查找
$arrData = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67);
echo normal_search($arrData,6),"<br/>";
echo normal_search($arrData,66),"<br/>";

// 二分法查找(针对有序的列进行查找)
function binary_search($arrData,$val) {
$len = count($arrData);
if($len == 0) return -1;

$start = 0;
$end = $len - 1;

while($start <= $end) {
$middle = intval(($start + $end)/2);
echo "start = ",$start," end = ",$end," middle = ",$middle,"<br/>";
if($arrData[$middle] == $val) {
return $middle;
} elseif ($arrData[$middle] > $val) {
$end = $middle - 1 ;
} elseif ($arrData[$middle] < $val) {
$start = $middle + 1;
}
}
return -1;
}

// 测试一下二分法查找
$arrData = array(1,2,3,4,5,7,8,9,11,23,56,100,104,578,1000);
echo binary_search($arrData,578),"<br/>";
echo binary_search($arrData,66),"<br/>";

时间: 2024-09-23 06:28:05

php数据结构与算法(PHP描述) 查找与二分法查找_php技巧的相关文章

数据结构与算法系列(3)基础查找算法

前言 数据查找是基础的计算机编程工作,而且人们对它的研究已经很多年了.在本部分只会看到查找问 题的一个内容,即根据给定的数值在一个列表(数组)中进行查找. 有两种对列表内数据进行查找的方法:顺序查找和二驻查找.当数据项在列表内随机排列的时候可 以使用顺序查找,而当数据项在列表内有序排列的时候则会用到二叉查找. 1.顺序查找算法 最突出的查找类型就是从记录集的开始处顺次遍历每条记录,直到找到所需要的记录或者是到达数 据集的末尾.这就是所谓的顺序查找. 顺序查找(也称为线性查找)是非常容易实现的.从

几篇关于无限分类算法的文章第1/5页_php技巧

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html By Mike Hillyer Introduction Most users at one time or another have dealt with hierarchical data in a SQL database and no doubt learned that the management of hierarchical data is no

《数据结构与算法 Javascript描述》读书笔记

当初买这本书的原因,在意的是有没有什么令人惊喜的东西,特别是针对Javascript代码的奇思妙想,所以就买下了这本书. 在买的几本书里面,最先看的也是这一本,但看起目录就觉得不大妙,翻起内容时候,才发现真不是那么的新奇的东西,甚至来说几乎不关Javascript的事. 我知道作者讲的是数据结构思想的东西,但是真跟Javascript没关系.作者几乎是把C语言算法的那一套搬到Javascript,看得我直满满都是C语言的影子.我不是排斥Javascript来讲算法的东西,只是觉得Javascri

一致性哈希算法以及其PHP实现详细解析_php技巧

在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括:  轮循算法(Round Robin).哈希算法(HASH).最少连接算法(Least Connection).响应速度算法(Response Time).加权法(Weighted )等.其中哈希算法是最为常用的算法. 典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务. 常用的算法是对hash结果取余数 (hash() mod N):对机器编号从0到N-1,按

PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)_php技巧

本文实例总结了PHP字符串处理技巧.分享给大家供大家参考,具体如下: Demo1.php <?php //源代码是文本形式,页面显示是 web 形式 $str = ' PHP '; //清理一下两边的空格 ltrim 只清理左,rtrim只清理右边 echo ltrim($str); echo '<br/>'; echo rtrim($str); echo '<br/>'; //两边都清理 echo trim($str); //echo chop($str); ?> D

PHP冒泡算法详解(递归实现)_php技巧

实现 复制代码 代码如下: /*     冒泡算法(递归实现) */ function maoPao($array, $index=0) {     $count = count($array);     if(($count-1) <= $index)         return $array;     for($i=$count-1; $i>$index; $i-- )     {         if($array[$i] < $array[$i-1])         {   

PHP实现通过Luhn算法校验信用卡卡号是否有效_php技巧

本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法.分享给大家供大家参考.具体实现方法如下: $numbers = "49927398716 49927398717 1234567812345678 1234567812345670"; foreach (split(' ', $numbers) as $n) echo "$n is ", luhnTest($n) ? 'valid' : 'not valid', '</br>'; fu

php在字符串中查找另一个字符串_php技巧

<a href="./">返回列表</a><br> <form action="<?echo $PHP_SELF;?>" method="post"> 在<input type="text" name="string" value="<?echo $string;?>">中查找<input type

关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况_php技巧

mysql链接建立之后,通过如下方式设置编码: 复制代码 代码如下: mysql_query("SET character_set_connection=" . $GLOBALS['charset'] . ",character_set_results=" . $GLOBALS['charset'] . ",character_set_client=binary", $this->link); 然而建立出来的表结构描述竟然是乱码: 复制代码