介紹:通過設定乙個初始中間值,來將需要排序的陣列分成3部分,小於中間值的左邊,中間值,大於中間值的右邊,繼續遞迴用相同的方式來排序左邊和右邊,最後合併陣列
**如下:
<?php
$a = array(2,13,42,34,56,23,67,365,87665,54,68,3);
function quick_sort($a)
$middle = $a[0]; // 中間值
$left = array(); // 接收小於中間值
$right = array();// 接收大於中間值
// 迴圈比較
for ($i=1; $i < count($a); $i++) else
}// 遞迴排序劃分好的2邊
$left = quick_sort($left);
$right = quick_sort($right);
// 合併排序後的資料,別忘了合併中間值
return array_merge($left, array($middle), $right);
}print_r(quick_sort($a));
//結果
//array ( [0] => 2 [1] => 3 [2] => 13 [3] => 23 [4] => 34 [5] => 42 [6] => 54 [7] => 56 [8] => 67 [9] => 68 [10] => 365 [11] => 87665 )
php 快速排序演算法,PHP 快速排序演算法
概念 快速排序演算法是對冒泡演算法的乙個優化。他的思想是先對陣列進行分割,把大的元素數值放到乙個臨時陣列裡,把小的元素數值放到另乙個臨時陣列裡 這個分割的點可以是陣列中的任意乙個元素值,一般用第乙個元素,即 array 0 然後繼續把這兩個臨時陣列重複上面拆分,最後把小的陣列元素和大的陣列元素合併起...
php 快速排序演算法,php 快速排序函式
在php程式設計中會用到一些常用的演算法,把這些演算法 寫成函式方便以後呼叫 php快速排序函式就這樣誕生了,兩個版本,遞迴和無遞迴。可以根據實際需要選用。qsort 資料快速排序遞迴版 array to sort 需要排序的陣列 排序過程中,陣列的鍵會被替換為數字索引的鍵 如果 array to ...
PHP快速排序演算法
看了c語言版本的快速排序後,我用php實現了一遍。難度在於在乙個陣列上面進行位置的交換理解 一列很長很長很長的隊伍,我要排序,先抽乙個隊長,然後以隊長為準,比隊長高的排隊長右邊,比隊長矮的排隊長左邊。然後以隊長為中界分成兩個小分隊。各小分隊又抽乙個小隊長 這個小隊長又按照大隊長的做法做了一遍 取第乙...