PHP算法
一,实现快速排序
1 <?php 2 function quickSort($arr) { 3 $len=count($arr) ; 4 if($len<=1) { 5 return $arr; 6 } 7 $key=$arr[0]; 8 $left_arr=array(); 9 $right_arr=array(); 10 for($i=1;$i<$len;$i++) { 11 if($arr[$i]<=$key) { 12 $left_arr[]=$arr[$i]; 13 }else { 14 $right_arr[]=$arr[$i]; 15 } 16 } 17 $left_arr=quickSort($left_arr); 18 $right_arr=quickSort($right_arr); 19 return array_merge($left_arr,array($key),$right_arr); 20 21 } 22 $table=array(45,12,65,23,67,66,22,78,42); 23 print_r(quickSort($table));
方法是
1、建立一个quickSort()的函数,首先设置先设置一个变量为该数组的第一位,
2、接下来的该数组数值与第一位比较,若大于第一位,则分化到$right_arr这个数组里去,反之,则划分到$left_arr的数组里;
3、然后$right_arr和$left_arr在不断调用quickSort()这个函数;
4、使用array_merge()将所有分开的数组合并为一个数组。
二、冒泡法
1 <?php 2 function maopaoSort($array){ 3 $len=count($array); 4 if($len<=1) { 5 return $array; 6 } 7 for($i=0;$i<$len;$i++) { 8 for($j=$len-1;$j>$i;$j--) { 9 if($array[$j]>$array[$j-1]){ 10 $tmp=$array[$j]; 11 $array[$j]=$array[$j-1]; 12 $array[$j-1]=$tmp; 13 } 14 } 15 } 16 return $array; 17 } 18 19 $arr=array(32,43,21,54,15,17,13,18,43,87); 20 print_r(maopaoSort($arr));
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。