龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP的快速排序

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
基本思想是:取一个值与其他值进行比较,小的放在这个值的左边,大的放在这个值的右边,然后按照这个方式递归。转自PHP面试题: a href=http://phpmst.com/ rel=nofollowhttp://phpmst.com//a br /
基本思想是:取一个值与其他值进行比较,小的放在这个值的左边,大的放在这个值的右边,然后按照这个方式递归。转自PHP面试题: http://phpmst.com/

<?php
	function quicksort($str){
		if(count($str)<=1) return $str;//如果个数不大于一,直接返回
		$key=$str[0];//取一个值,稍后用来比较;
		$left_arr=array();
		$right_arr=array();
		for($i=1;$i<count($str);$i++){//比$key大的放在右边,小的放在左边;
			if($str[$i]<=$key)
			$left_arr[]=$str[$i];
			else
			$right_arr[]=$str[$i];
		}
		$left_arr=quicksort($left_arr);//进行递归;
		$right_arr=quicksort($right_arr);
		return array_merge($left_arr,array($key),$right_arr);//将左中右的值合并成一个数组;
	}//以下是测试
	$str=array(5,3,8,2,5,9,7,2,1,4,0);
	print_r(quicksort($str));
?>
精彩图集

赞助商链接