博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php冒泡排序跟二分算法
阅读量:6655 次
发布时间:2019-06-25

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

hot3.png

PHP冒泡排序

$a=array('3','8','1','4','11','7');print_r($a);$len = count($a);//从小到大for($i=1;$i<$len;$i++) {    for ($j = $len - 1; $j >= $i; $j--) {        if ($a[$j] < $a[$j - 1]) {//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了            $x = $a[$j];            $a[$j] = $a[$j - 1];            $a[$j - 1] = $x;        }    }}print_r($a);exit;

$i=1,子循环运行$j=5,$j=4,$j=3,$j=2,$=1;第一次查找将这个数组中最小的放到第一位去

$=2,资讯还运行$j=5,$j=4;$j=3;$j=2;第二次查找这个数组中次小的放到第二去

如此循环就实现了排列,这就是冒泡排序

php二分算法

二分算法是为了实现查找某个元素在一个数组中的索引值,将数组一分为2,逐步缩小范围,最终查找到,前提是数组必须排列好。

public function search($arr,$searchval){    $top=count($arr)-1;    $low=0;    while($low<=$top){        $mid=floor(($top+$low)/2);//取整进一        if($arr[$mid]==$searchval){            return $mid;        }        elseif($arr[$mid]>$searchval){            //如果说中间的值比搜索的值大,证明我们要到前半部分去搜索,因此top为中间的-1            $top=$mid-1;        }        else{            //如果说中间的值比搜索的值小,证明我们要到后半部分去搜索,因此low为中间的+1            $low=$mid+1;        }    }    return -1;//未查找到}
$arr=array(1,2,3,5,9,41,50);var_dump($this->search($arr,41));exit;

转载于:https://my.oschina.net/u/1186749/blog/661691

你可能感兴趣的文章
Java之品优购课程讲义_day16(4)
查看>>
Java的新项目学成在线笔记-day4(三)
查看>>
2018-11-23 python学习第八天
查看>>
JAVA基本数据类型 面试题
查看>>
网络分流器|移动互联网采集方案
查看>>
JS类库管理
查看>>
数据的魅力,挖掘小数据满足用户需求!
查看>>
静态路由简单配置
查看>>
web开发
查看>>
Linux Shell交互式自动化运维程序
查看>>
linux网卡
查看>>
我的敏捷个人“高效”工作总结
查看>>
Linux操作系统中的七件超厉害的武器
查看>>
Linux安装配置varnish web加速器
查看>>
RS复习之:二层技术----以太网
查看>>
都市白领保健必需的营养盘点
查看>>
Oracle创建表空间、创建用户以及授权、查看权限
查看>>
博客内容更新目录
查看>>
Wsus Client ID重复问题
查看>>
我的友情链接
查看>>