php常用算法
来源:互联网 发布:淘宝美工的工作总结 编辑:程序博客网 时间:2024/06/07 05:56
1、插入排序
function insert_sort($arr){ $count = count($arr); for($i=1; $i<$count; $i++){ $tmp = $arr[$i]; $j = $i - 1; while($arr[$j] > $tmp){ $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; } } return $arr;}var_dump(insert_sort(array(34,12,54,44,65)));2、冒泡排序function bubble_sort($array){ if (empty($array)){ return 'no array data'; } $count = count($array); if ($count == 1){ return $array; } for ($i=0;$i<$count-1;$i++){ for ($j=$count-1;$j>$i;$j--){ if ($array[$j] > $array[$j-1]){ $temp = $array[$j-1]; $array[$j-1] = $array[$j]; $array[$j] = $temp; } } } return $array;}$array = array(23,43,12,32,9,76,2,19);var_dump(bubble_sort($array));
3、快速排序function quickSort($arr){ $len = count($arr); if($len <= 1) { return $arr; } $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){ $left_arr[] = $arr[$i]; } else { $right_arr[] = $arr[$i]; } } $left_arr = quickSort($left_arr); $right_arr = quickSort($right_arr); return array_merge($left_arr, array($key), $right_arr);}4、二分算法/** * @param $arr 用来查找的数组 * @param $val 需要查找的值 * @param $start 起始位置 * @param $end 结束位置 * @return float|int|void 数组中位置 */function twosearch($arr,$val,$start,$end){ if ($start > $end){ echo "can't search"; return; } $middle=round(($start+$end)/2); if($arr[$middle]>$val){ twosearchmethod($arr, $val, $start, $middle-1); }elseif($arr[$middle]<$val){ twosearchmethod($arr, $val, $middle+1, $end); }else{ return $middle; } return -1;}var_dump( twosearch(array(3,4,5,6,7),5,0,4));
0 0
- php常用算法总结
- PHP常用算法
- PHP常用算法
- php常用排序算法
- php常用算法整理
- PHP常用算法
- php常用算法
- php常用算法
- php 常用算法
- 常用算法PHP版
- php常用算法
- 七大常用PHP算法
- php常用算法
- PHP面试常用算法
- php常用算法
- PHP 常用算法
- php各种常用算法
- php常用排序算法
- 015-Dijkstra算法-贪心-《算法设计技巧与分析》M.H.A学习笔记
- 无限轮播的实现
- 远程调试ambari
- 汇编指令查询器代码
- 提高项目15、一副扑克牌
- php常用算法
- JDBC基本编程步骤
- ES6 箭头函数 柯里化
- iOS中runtime(运行时)的简单介绍与应用
- Spring AOP实现复杂的日志记录(自定义注解)
- 在微信及支付宝下的音频自动播放
- Java并发编程:volatile关键字解析
- [Matlab] K均值聚类
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解