首页 > 代码库 > php快速排序
php快速排序
快速排序是排序中常用的,效率据说还不错,它使用分治算法实现
将一个大的需要排序的序列,分成两个较小的序列!怎么分呢,需要从序列中找出一个元素作为参考元素,通常的做法是拿第一个元素作为参考元素。当一个序列只有一个元素或者零个元素,就说明这个序列已经排序好 。
步骤:
1,用一个元素作为参考元
2,分割序列,形成小于参考元和大于参考元的元素
3,分别对校园和大于两个序列使用同样的排序算法完成排序(递归调用)
4,合并左,参考元,和右元素即可
<?php/** * 快速排序 * PHP Version 5.3.13 */header("Content-type:text/html;charset=utf-8");function quicksort($list){ $len = count($list); // 定义递归出口 if($len <= 1){ return $list; } $one = $list[0]; // 定义两个序列 $left = $right = array(); for($i=1;$i<$len;++$i){ if($list[$i] < $one){ $left[] = $list[$i]; }else{ $right[] = $list[$i]; } } $left = quicksort($left); $right = quicksort($right); $result = array_merge($left,array($one),$right); return $result;}$arr = array(45,10,20,30,40,50,60);echo ‘排序前:‘,print_r($arr);echo ‘<hr/>‘;echo ‘排序后:‘,print_r(quicksort($arr));
在运行程序过程中,因为不小心小错一段代码,而产生一个错误,让我感觉到程序的严谨之重要性,他的任何发生我们都要去监控。
Notice: Undefined offset: 0 in D:\lcc\quicksort.php on line 10
php快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。