快速排序的php實現

2021-07-29 17:49:20 字數 963 閱讀 4305

快速排序的基本原理:

1. 任取陣列中乙個的元素作為比較基數,一般取第乙個。

2. 歷遍陣列,把所有小於基數的元素放在左側,把所有大於基數的元素放在右邊。這時候,基數正好處在了正確的位置(左邊的都它小,右邊的都比它大)。

3. 為了保證後續的操作2中的基數字置不變動,接下來分別對陣列左側部分和右側部分進行上述排序即可。

4. 往復遞迴上述三個步驟。

**如下:

<?php

function

quicksort

(&$arr)

else

}return array_merge($arr_left, [$arr[0]], $arr_right);#注意,把左邊一部分、基數和右邊一部分合併時,需要把基數作為乙個陣列才能使用array_merge

}$arr = [3,4,1,2,5,7,8,12,20];

print_r($arr);

print_r(quicksort($arr));

執行結果:

array

( [0] => 3

[1] => 4

[2] => 1

[3] => 2

[4] => 5

[5] => 7

[6] => 8

[7] => 12

[8] => 20

)array

( [0] => 1

[1] => 2

[2] => 3

[3] => 4

[4] => 5

[5] => 7

[6] => 8

[7] => 12

[8] => 20

)

php實現快速排序

先獲取第乙個值為關鍵字,讓i指向第乙個,j指向最後乙個,先從最後乙個找比key小的,j指向它,將它放在i指向的地方,然後i再向前走,直到找到比key大的,放在j指向的地方,就這樣迴圈,直到i j的時候,關閉迴圈。arr array 1,2,3,5,2,3,9,8,3,2,7,4,9,8,0,4,58...

PHP實現快速排序

快速排序 在無序的陣列 data中,選擇任意乙個值作為對比值,定義i為頭部檢索索引,j為尾部檢索索引,演算法步驟 1 初始化對比值 value data 0 i 1,j count data 1 2 首先從尾部開始檢索,判斷 data j 是否小於 value,若不小於則 j 繼續檢索,直到找到比 ...

PHP 實現快速排序

首先了解快速排序的原理 1 先取乙個基值,用於每次的標準定位。2 遍歷陣列,將大於基值的放到右邊陣列,小於的放到左邊陣列 3 將每次的左右陣列和基值一起合併 實現 快速排序 function quick sort array 每次取最左邊的值 key array 0 leftarr array ri...