共计 924 个字符,预计需要花费 3 分钟才能阅读完成。
<?php
namespace Index;
require './DumpTrait.php';
class Sort
{
use DumpTrait;
function test()
{
$this->dump([1,2,3,4]);
}
/**
* 冒泡排序 从小到大排序
* [4,1,5,12,44,23]
*/
public function bubbleSort($sortArry)
{
$n = count($sortArry);
for ($i = 0; $i < $n; $i++) {
for ($x = $n-1; $x > $i; $x--) {
// 下面的判断中:
// 小于号 < 为正序排列
// 大于号 > 为倒序排列
if ($sortArry[$x] < $sortArry[$x-1]) { // 正序
//if ($sortArry[$x] < $sortArry[$x-1]) { // 倒序
// 小的放在前去,大的在后面
$tmp = $sortArry[$x-1];
$sortArry[$x-1] = $sortArry[$x];
$sortArry[$x] = $tmp;
}
}
}
//dump($sortArry);
return $sortArry;
}
//快速排序(数组排序)
public function quickSort($array) {
if (count($array) <= 1) return $array;
$key = $array[0]; //
$left_arr = array();
$right_arr = array();
// 比$key小的放左边,比$key大的放右边,递归执行该规则
for ($i=1; $i<count($array); $i++){
if ($array[$i] <= $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = $this->quicksort($left_arr);
$right_arr = $this->quicksort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
}
引用的trait类可忽视。
转载自https://zhuanlan.zhihu.com/p/625479327
正文完