
算法与数据结构
Trevor Lan
工欲善其事,必先利其器!
展开
-
快速排序
快速排序步骤 取数组中间值 遍历数组剩余元素小于中间值的放左边,大于中间值的放右边 将左右循环如此直至不可再分 将已排好的合并 第一种处理方式: <?php function quick_sort($arr) { if (count($arr) <= 1){ return $arr; } // 取数组中间索引 $index...原创 2019-05-09 18:01:54 · 915 阅读 · 0 评论 -
冒泡排序
冒泡排序算法原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 实现过程 function bubble_sort($arr){...原创 2019-05-09 18:05:32 · 796 阅读 · 0 评论 -
直接插入排序
直接插入排序 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。 实现过程 function insert_sort($arr){ for($i=1;$i<count($arr);$i++){ $x=$arr[$i]; for($j=$i-1;$j>=0&&$x&...原创 2019-05-09 18:08:15 · 807 阅读 · 0 评论 -
斐波那契数列
斐波那契数列公式 f(n)=f(n-1)+f(n-2) 注:n>=2 用递归算法实现 function fibonacci($n){ if($n<=0){ exit('数列错误'); }else if($n==1||$n==2){ return 1; }else{ return fibonacci($n-1)+fibonacci($n-2);...原创 2019-05-09 17:15:02 · 1071 阅读 · 0 评论