首页 > Php > php 冒泡法排序、快速排序 示例

php 冒泡法排序、快速排序 示例

冒泡法:

每个依次同其它数据比较,先选出最大(最小)的,再选第二大(小)的。
示例:

//冒泡排序
function maopao($arr)
{
	$n = count($arr);
	for($j=0;$j<$n-1;$j++)
	{
		for($i=$j+1;$i<=$n-1;$i++)
		{
			if($arr[$j]>$arr[$i])
			{
				$t = $arr[$i];
				$arr[$i] = $arr[$j];
				$arr[$j]=$t;
			}
		}
	}
	return $arr;
}
$arr = array(1,5,4,7,3,2);
print_r($arr);

快速排序:

通过一趟排序分成两部分,然后递归对这两部分排序,最后合并。

//快速排序
function quick($array)
{	
	if(count($array)<=1)
	{
		return $array;
	}
	$key = $array[0];
	$l = array();
	$r = array();
	for($i=1;$i<count($array);$i++)
	{
		if ($array[$i]<=$key)
		{
			$l[] =$array[$i];
		}
		else
		{
			$r[] = $array[$i];
		}
	}

	$l = quick($l);
	$r = quick($r);
return array_merge($l,array($key),$r);
}
$array = array(2,5,3,4,1);
print_r(quick($array));
  1. 匿名 4月 25th, 2011 @ 18:50 | #1

    冒泡法函数体内忘记 return 了。

  2. DigDeeply 4月 25th, 2011 @ 20:19 | #2

    @匿名
    哈哈,是啊,谢谢。

  3. SK 12月 23rd, 2012 @ 22:07 | #3

    算法和数据结构 很重要

  4. SK 12月 23rd, 2012 @ 22:18 | #4

    冒泡的算法,可以使用list函数,变量值对换,不用引入t变量。
    最后是print_r(maopao($arr));

评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks