PHP快速排序法(数组排序)与简单选择排序

来源:互联网 发布:linux下如何同步时钟 编辑:程序博客网 时间:2024/05/16 18:22
<pre name="code" class="php">//快速排序(数组排序)function quicksort($array) {if (count($array) <= 1) return $array;$key = $array[0];$left_arr = array();$right_arr = array();for ($i=1; $i<count($array); $i++){       if ($array[$i] <= $key)         $left_arr[] = $array[$i];       else         $right_arr[] = $array[$i];}$left_arr = quicksort($left_arr);$right_arr = quicksort($right_arr);return array_merge($left_arr, array($key), $right_arr);}

 
 <?php /** * 简单选择排序 simple selection sort * * 原理: 一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上数。 */ function sort_simple_selection($list) { $len = count($list); if(empty($len)) return $list; for($i = 0;$i < $len; $i++) { $min = $i; for($j = $i + 1; $j < $len; $j++) { //if($list[$j] > $list[$min]) // 从大到小 if($list[$j] < $list[$min]) // 从小到大 { $min = $j; } echo implode(',',$list)."#pos=".($min + 1)." min=".$list[$min]."<br/>"; } if($min != $i) { $temp = $list[$i]; $list[$i] = $list[$min]; $list[$min] = $temp; } echo "-------------------------<br/>"; } } $list = array(4,3,2,1,5,7,3,7); $list = sort_simple_selection($list); 


                                             
0 0
原创粉丝点击