PHP實現快速排序

2021-08-01 21:40:51 字數 992 閱讀 1267

快速排序思想:

1.選取陣列中乙個元素作為比較物件,一般選取第乙個元素(為避免發生最壞情況可選擇第乙個元素、最後乙個元素和中間元素的平均值作為比較物件)。

2.遍歷陣列,將小於比較物件的元素放入乙個陣列,將大於等於比較物件的元素放入另乙個陣列。

3.然後在按此方法分別對這兩部分資料進行快速排序(遞迴實現)。

4.將排序好的陣列合併成乙個陣列。

php**實現:

<?php

//帶排序陣列

$arr = array(4,5,2,5,7,9,8,1,23,5,2,6,8,3);

function my_sort($arr)elseelse

}//將$arr_left與$arr_right分別排序後再與$arr[0]合併成乙個陣列,即為排序好的陣列

return array_merge(my_sort($arr_left),array($arr[0]), my_sort($arr_right));

}}var_dump(my_sort($arr));

//輸出:

// array

// 0 => int 1

// 1 => int 2

// 2 => int 2

// 3 => int 3

// 4 => int 4

// 5 => int 5

// 6 => int 5

// 7 => int 5

// 8 => int 6

// 9 => int 7

// 10 => int 8

// 11 => int 8

// 12 => int 9

// 13 => int 23

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...