首页 > 代码库 > 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快速排序