解析php二分法查找数组是否包含某一元素
2015-01-24信息快讯网
本篇文章是对在php中二分法查找数组是否包含某一元素进行了详细的分析介绍,需要的朋友参考下
二分法查找数组是否包含某一元素,兼容正反序,代码实现:<?php $searchValue = (int)$_GET['key']; function search(array $array, $value) { $max = count($array)-1; $min = 0; $isAscSort = $array[$min] < $array[$max]; while (TRUE) { $sum = $min+$max; $midKey = (int)($sum%2 == 1 ? ceil($sum/2) : $sum/2); if ($max < $min) { return -1; } else if ($value == $array[$midKey]) { return 1; } else if ($value > $array[$midKey]) { $isAscSort ? $min = $midKey+1 : $max = $midKey-1; } else if ($value < $array[$midKey]) { $isAscSort ? $max = $midKey-1 : $min = $midKey+1; } } } $array = array( '4', '5', '7', '8', '9', '10', '11', '12' ); // 正序 echo search($array, $searchValue); // 逆序 rsort($array); echo search($array, $searchValue);
这个之前搜过,看过百度百科的例子(Java的实现),还有一些其他技术宅写的Code,都有问题,根本就没实现,这些人不测试就放出来误导人,大家可以去搜搜看下,昨天闲来无事就自己写一个分享给大家。
这个没考虑非顺序键的数组,主要是方法,如果需要大家可以自己扩展下。
php中的boolean(布尔)类型详解
php中的比较运算符详解
php float不四舍五入截取浮点型字符串方法总结
析构函数与php的垃圾回收机制详解
web server使用php生成web页面的三种方法总结
php获取数组长度的方法(有实例)
php数组转换js数组操作及json_encode的用法详解
php获取目录所有文件并将结果保存到数组(实例)
php中怎么搜索相关联数组键值及获取之
php中将数组转成字符串并保存到数据库中的函数代码
如何使用PHP计算上一个月的今天
PHP下打开phpMyAdmin出现403错误的问题解决方法
php设计模式之观察者模式的应用详解
php设计模式之命令模式的应用详解
浅谈PHP与C#的值类型指向区别的详解
PHP无法访问远程mysql的问题分析及解决
php中判断数组是一维,二维,还是多维的解决方法
php二维数组排序与默认自然排序的方法介绍
php笔记之:php数组相关函数的使用
PHP 读取Postgresql中的数组
PHP 数组和字符串互相转换实现方法