冒泡,选择,插入,快速排序:PHP四种基础算法(一)
浏览数:770 时间:2015-04-20
许多人都说程序的核心是算法,程序的好坏,关键在于这个程序算法的优劣。作为一个初级phper(PHP程序员的一种别称),虽然很少接触到算法方面的东西。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,小编认为还是有必要掌握的。下面是小编按自己的理解,将四个方法分析一遍。
需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。
冒泡排序法
<?php /** * 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。 * 比如:2,4,1 // 第一次 冒出的泡是4 * 2,1,4 // 第二次 冒出的泡是 2 * 1,2,4 // 最后就变成这样 */ $arr = array(1,43,54,62,21,66,32,78,36,76,39); function getpao($arr) { $len=count($arr); //设置一个空数组 用来接收冒出来的泡 //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if($arr[$k]>$arr[$k+1]) { $tmp=$arr[$k+1]; $arr[$k+1]=$arr[$k]; $arr[$k]=$tmp; } } } return $arr; } var_dump(getpao($arr)); //输出结果如下: /* array(11) { [0]=> int(1) [1]=> int(21) [2]=> int(32) [3]=> int(36) [4]=> int(39) [5]=> int(43) [6]=> int(54) [7]=> int(62) [8]=> int(66) [9]=> int(76) [10]=> int(78) } */ ?>
友情链接