php快速排序与冒泡排序,冒泡排序与快速排序

class ArraySort{

/*

* author:wency;

* name:initRand

* purpose:快速产生一组随机数

* @parameter  $length  长度

* @parameter $low  int  最小数

* @parameter $high  int 最大数

* return:$X array

*/

public function initRand($length, $low, $high) {

for ($i = 0; $i 

$arrX[] = rand($low, $high);

}

$X = $arrX;

echo '

';

return ($X);

}

/*

* author:wency;

* name:bubble_sort

* purpose:冒泡排序

* @parameter  $X array

* return:$X array

*/

public function bubble_sort(&$X) {

$count = count($X);

for ($j = 0; $j 

for ($i = 0; $i 

if ($X[$i] > $X[$i + 1]) {

$temp = $X[$i];

$X[$i] = $X[$i + 1];

$X[$i + 1] = $temp;

}

}

}

return $X;

}

/*

* author:wency;

* name:quick_sort

* purpose:快速排序

* @parameter  $array array

* return:$array array

*/

public function quick_sort($array) {

if (count($array) <= 1) {

return $array;

}

$key = $array[0];

$left = [];

$right = [];

for ($i = 1; $i 

if ($array[$i] 

$left[] = $array[$i];

} else {

$right[] = $array[$i];

}

}

$left = $this->quick_sort($left);

$right = $this->quick_sort($right);

return array_merge($left, array($key), $right);

}

}$obj = new ArraySort;

$newArray = $obj->initRand(20, 1, 100);

echo '

';

print_r($newArray);

echo '

';

//$arrX = $obj->bubble_sort($newArray);

$arrX = $obj->quick_sort($newArray);

print_r($arrX);

可以先调用类中的initRand()方法快速产生一组随机数组,再调用两个排序方法bubble_sort()和quick_sort()进行排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值