快速排序算法的PHP與JQuery簡(jiǎn)單實(shí)現(xiàn)

快速排序(以下簡(jiǎn)稱快排)算法的PHP與JQuery簡(jiǎn)單實(shí)現(xiàn)

1.簡(jiǎn)介:

  • 1.快排的本質(zhì)是冒泡排序(Bubble Sort)的優(yōu)化;
  • 2.快排的排序效率在同為O(N*logN)的幾種排序方法中效率較高;
  • 3.為了便于說明,這里將以數(shù)組為例,實(shí)際應(yīng)用可靈活拓展;

2.核心思想:

  • 1.選擇一個(gè)基本元素作為參照值,通常選擇為第一位或中間一位;
  • 2.以基本元素為參照,將數(shù)組分割為兩個(gè)區(qū)間:一個(gè)區(qū)間A全部大于該值,一個(gè)區(qū)間B全部小于該值;
  • 3.再分別對(duì)AB區(qū)間重復(fù)上述1,2操作,直到再無可被拆分的元素;
  • 4.整合區(qū)間碎片,即得目標(biāo)對(duì)象;

PHP Demo:

public function fsort($a_array) {
// 初始化分隔區(qū)間
$a_left = array();
$a_right = array();
// 設(shè)置終止條件
if (isset($a_array[0])) {
    $o_flag = $a_array[0];
}
if (!isset($a_array[1])) {
    return $a_array;
}
// 分割目標(biāo)對(duì)象
for ($i = 0; $i < count($a_array); $i++) { 
    if ($a_array[$i] < $o_flag) {
        $a_left[] = $a_array[$i];
    }
    if ($a_array[$i] > $o_flag) {
        $a_right[] = $a_array[$i];
    }
}
// 遞歸處理分割后的兩個(gè)區(qū)間
$a_left = $this->fsort($a_left);
$a_left[] = $o_flag;
$a_right = $this->fsort($a_right);
return array_merge($a_left, $a_right);
}

JQuery Demo:

var qSort = function(array){
// 初始化分隔區(qū)間
var left = [],
    right = [];
// 設(shè)置終止條件
if (array[0]) {
    var flag = array[0];
}
if (!array[1]) {
    return array;
}
// 分割目標(biāo)對(duì)象
for (i = 0; i < array.length; i++) { 
    if (array[i] < flag) {
        left.push(array[i]);
    }
    if (array[i] > flag) {
        right.push(array[i]);
    }
}
// 遞歸處理分割后的兩個(gè)區(qū)間
left = qSort(left);
left.push(flag);
right = qSort(right);
return $.merge(left, right);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫在前邊:這篇文章又臭又長(zhǎng),純屬個(gè)人無聊總結(jié)之作,如果您恰好看見了,有恰好有興趣,建議您找個(gè)空閑時(shí)間閱讀。 [TO...
    John_Tsemin閱讀 2,630評(píng)論 2 5
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,301評(píng)論 0 52
  • 在小的時(shí)候,我可能不知道母愛是什么,而如今,我漸漸長(zhǎng)大了,在過程中我慢慢的明白了母愛到底是什么,品嘗到了只有母親才...
    初念吖_L閱讀 25,981評(píng)論 0 3
  • 兩性情感是個(gè)自私的東西,男女關(guān)系一旦開始,都是會(huì)有占有欲的。 總會(huì)不自由主覺得:你是我的了,我是你的了。 此時(shí)要是...
    萱小蕾閱讀 274評(píng)論 0 0
  • 用隱喻照亮自己第四天:如果我是一種動(dòng)物,我是一只小小鳥。 我是一只小小鳥,可以飛往任何我想去的地方 我是一只小小鳥...
    孫蘋閱讀 345評(píng)論 0 0

友情鏈接更多精彩內(nèi)容