php 算法
来源:互联网 发布:javascript 创建元素 编辑:程序博客网 时间:2024/06/15 07:58
//冒泡排序$a = array(1,34,56,77,23,233);function maopao($arr){ $len = count($arr); //该循环控制需要冒泡的轮数 for($i = 1;$i<$len;$i++) { //该循环用来控制每轮 冒出一个数 需要比较的次数 for($k = 0;$k < $len - $i; $k++) { if($arr[$k] > $arr[$k+1]) { $temp = $arr[$k + 1]; $arr[$k + 1] = $arr[$k]; $arr[$k] = $temp; } } } return $arr;}var_dump(maopao($a));//选择排序function selectSort($arr) {//双重循环完成,外层控制轮数,内层控制比较次数 $len=count($arr); for($i=0; $i<$len-1; $i++) { //先假设最小的值的位置 $p = $i; for($j=$i+1; $j<$len; $j++) { //$arr[$p] 是当前已知的最小值 if($arr[$p] > $arr[$j]) { //比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。 $p = $j; } } //已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。 if($p != $i) { $tmp = $arr[$p]; $arr[$p] = $arr[$i]; $arr[$i] = $tmp; } } //返回最终结果 return $arr;}//顺序查找function search($arr,$need){ foreach($arr as $k => $v) { if($need == $v) { return $k; } } return false;}$a = [1,3,4,5,56,677,];echo search($a,4);$a = [9,4,5,3,53,2];var_dump(selectSort($a));//二分查找$arr = array(2,4,6,8,10,16,26,42,68,110);function bindary_search($arr,$need,$begin=0,$end=null){ if(is_null($end)) { $end = count($arr)-1; } $mid = floor(($begin+$end)/2); if($arr[$mid] == $need) { return $mid; } if($arr[$mid]>$need) { if($arr[0] > $need) { return false; } $ret = bindary_search($arr,$need,$begin,$mid-1); }else{ if($arr[$end]<$need) { return false; } $ret = bindary_search($arr,$need,$mid+1,$end); } return $ret;}echo bindary_search($arr,4);
阅读全文
0 0
- PHP算法
- php算法
- php算法
- php算法
- PHP算法
- PHP算法
- php算法
- php---算法
- php 算法
- PHP算法
- php算法
- PHP算法
- php 算法
- php 算法
- php算法
- php 算法
- php算法
- PHP算法
- 牛客网-剑指offer-02-替换空格
- 认识你自己
- leetcode 89. Gray Code 按照index递归解决 + Grey码生成公式
- linkedHashMap的应用
- Dom4j:java.lang.NoClassDefFoundError: org/jaxen/JaxenException
- php 算法
- js组件化
- C# 从TTF文件加载自定义字体
- session:web会话管理的方式
- C# bitmap 灰度图像 Pattle 问题
- java基础数据结构分析
- Java基础部分第二节
- POJ 3259 Wormholes——spfa判负环
- HDU6201 2017 transaction transaction transaction 树形DP?