演算法之快速排序(php版)
function kuaisu($arr) {
if (empty($arr)) {
#必須是返回空陣列 不然報錯
return array();
}
//count long
$len = count($arr);
if ($len < 1) {
return 'is error';
}
//隨機選取一個數作為參照
$key[0] = $arr[0];
//建2個陣列給來儲存左右兩邊得資料
$left = array();
$right = array();
//迴圈陣列比較
for ($i = 1; $i < $len; $i++) {
# 和選中的值做比較小的放左邊,大的放右邊,利用二分法原理
if ($arr[$i] <= $key[0]) {
$left[] = $arr[$i];
} else {
$right[] = $arr[$i];
}
}
//把左邊的資料放一起,右邊的放一起
$left = kuaisu($left);
$right = kuaisu($right);
//最後合併陣列放回
return array_merge($left, $key, $right);
}
$arrTest = array(5,2,3,1,4);
print_r(kuaisu($arrTest));
相關文章
- PHP基礎演算法之快速排序法PHP演算法排序
- 排序演算法之 '快速排序'排序演算法
- 排序演算法:插入折半排序 PHP 版排序演算法PHP
- 演算法之快速排序演算法排序
- PHP 排序演算法之希爾排序PHP排序演算法
- 排序演算法:插入排序演算法 PHP 版排序演算法PHP
- PHP 排序演算法之選擇排序PHP排序演算法
- PHP 排序演算法之插入排序PHP排序演算法
- 排序演算法之快速排序的實現排序演算法
- 看動畫學演算法之:排序-快速排序動畫演算法排序
- 畫江湖之演算法篇【排序演算法】快速排序演算法排序
- 畫江湖之演算法篇 [排序演算法] 快速排序演算法排序
- 演算法圖解之快速排序演算法圖解排序
- 經典演算法之快速排序演算法排序
- 排序演算法之「快速排序(Quick Sort) _c++ 」排序演算法UIC++
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- Python之排序演算法:快速排序與氣泡排序Python排序演算法
- 排序演算法__快速排序排序演算法
- 排序演算法:快速排序排序演算法
- 排序演算法-快速排序排序演算法
- 排序演算法——快速排序排序演算法
- 排序演算法 - 快速排序排序演算法
- 排序之快速排序排序
- PHP排序演算法(插入,選擇,交換,冒泡,快速)PHP排序演算法
- “chaos”的演算法–之快速排序薦演算法排序
- PHP 演算法02之插入排序PHP演算法排序
- #排序演算法#【4】快速排序排序演算法
- 《排序演算法》——快速排序(Java)排序演算法Java
- 【JAVA演算法】排序演算法 -- 快速排序Java演算法排序
- 「演算法之美系列」排序(JS版)演算法排序JS
- php實現 歸併排序,快速排序PHP排序
- 【演算法】快速排序演算法排序
- 快速排序演算法排序演算法
- php插入排序,快速排序,歸併排序,堆排序PHP排序
- 資料結構和演算法面試題系列—排序演算法之快速排序資料結構演算法面試題排序
- C++排序演算法之氣泡排序改進版C++排序演算法
- 排序演算法之歸併,快速,堆和桶排序演算法
- 資料結構與演算法之快速排序資料結構演算法排序