码迷,mamicode.com
首页 > 编程语言 > 详细

php快速排序

时间:2014-10-21 17:29:34      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:des   blog   io   os   ar   使用   for   strong   sp   

快速排序是排序中常用的,效率据说还不错,它使用分治算法实现

将一个大的需要排序的序列,分成两个较小的序列!怎么分呢,需要从序列中找出一个元素作为参考元素,通常的做法是拿第一个元素作为参考元素。当一个序列只有一个元素或者零个元素,就说明这个序列已经排序好 。

bubuko.com,布布扣

步骤:
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));

 bubuko.com,布布扣

在运行程序过程中,因为不小心小错一段代码,而产生一个错误,让我感觉到程序的严谨之重要性,他的任何发生我们都要去监控。

Notice: Undefined offset: 0 in D:\lcc\quicksort.php on line 10      

php快速排序

标签:des   blog   io   os   ar   使用   for   strong   sp   

原文地址:http://www.cnblogs.com/geek12/p/4040611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!