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()进行排序