PHP 遞迴快速排序

2021-10-11 05:15:25 字數 642 閱讀 2351

快速排序是對氣泡排序的一種改進

快速排序的基本思路是:設定乙個基準元素,通過排序將需要排序的資料分割成兩個部分,其中一部分的所有資料比基準元素小,另一部分的所有資料比基準元素大,然後對這兩部分資料分別進行遞迴快速排序,最後將得到的資料和基準元素進行合併,就得到了所需資料。

**

<?php

$arr = [8,1,10,9,5,7];

function quicksort($arr)

//選擇基準元素。一般選第乙個或最後乙個

$first = $arr[0];

$left = array();//接收小於基準元素的值

$right = array();//接收大於基準元素的值

//迴圈從1開始,因為基準元素是0

for($i=1;$i<$lenth;$i++)else

}//遞迴排序

$left = quicksort($left);

$right = quicksort($right);

//合併返回陣列

return array_merge($left,array($first),$right);

}echo '';

print_r(quicksort($arr));

PHP快速排序(遞迴)

日常的排序演算法中,快速排序是其中一種。實現起來相對簡單。假設有乙個陣列,有若干 n 個元素 數字且無序 需要對其進行從小到大的排序。快速排序的思路是怎麼樣的呢?取乙個中間值,然後,用其他陣列元素逐一和這個中間值比較,小於中間值的放在乙個陣列裡,大於中間值的放到另乙個陣列裡。這樣就以中間值為分界,分...

遞迴 快速排序 快速排序

問題描述 用遞迴來實現快速排序 quick sort 演算法。快速排序演算法的基本思路是 假設要對乙個陣列a進行排序,且a 0 x。首先對陣列中的元素進行調整,使x放在正確的位置上。同時,所有比x小的數都位於它的左邊,所有比x大的數都位於它的右邊。然後對於左 右兩段區域,遞迴地呼叫快速排序演算法來進...

排序 快速排序 遞迴

快速排序的遞迴寫法,總共寫了四種方法 兩個雙指標法 挖坑法 hoare法 快速排序的時間複雜度為o nlogn 表現為不穩定的演算法 快速排序的陣列在交換或者覆蓋的過程中,相同的數字可能會出現位置的變換 快排相當於二叉樹的前序遍歷 void swapargs int pa,int pb int ho...