PHP快速排序

本文回顾了快速排序算法的实现,并通过一个具体的示例演示了如何使用递归来完成数组的排序。作者强调了作为程序员掌握基本算法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的时候老是把已经学过了的忘了,没有办法只好找地方记下来.
今天把快速排序又回顾了一遍,

 

$a[ 0 =   " 192.128.2.3 " ;
$a[
1 =   " 132.168.1.5 " ;
$a[
2 =   " 192.168.1.2 " ;
$a[
3 =   " 192.178.2.4 " ;
$a[
4 =   " 165.152.1.8 " ;

function swap(
& $m, & $n)
{
 $temp 
= $n;
 $n 
= $m;
 $m 
= $temp;
}


function QuickSort(
& $b,$l,$r)
{
 $i 
= $l;$j = $r;
 $x 
= $b[($i+$j)/2];
 
do{
  
while (($b[$i]>$x)&&($i<$r))$i++;
  
while (($b[$j]<$x)&&($j>$l))$j--;
  
if($i <= $j) swap($b[$j--],$b[$i++]);
 }

 
while ($i<=$j);
 
if($l<$j) QuickSort(&$b,$l,$j);
 
if($i<$r) QuickSort(&$b,$i,$r);
}

QuickSort($a,
0 ,count($a) - 1 );

 

呵呵!说实话真的很简单,但是大二到现在居然没有人再考过我这个问题,昨天一个同事问我写这个程序要多长时间,10分钟够不?我才意识到自己真的把递归调用放下太久了!或许有高人说过少用递归调用吧!但是想想少用并不是不用,程序想写的好,什么都得想到!做为一个程序员,基本的东西也是最重要的东西.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值