PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?
生活随笔
收集整理的這篇文章主要介紹了
PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原理:快速排序使用分治策略來把待排序數據序列分為兩個子序列,具體步驟為:
(1)從數列中挑出一個元素,稱該元素為“基準”。
(2)掃描一遍數列,將所有比“基準”小的元素排在基準前面,所有比“基準”大的元素排在基準后面。
(3)通過遞歸,將各子序列劃分為更小的序列,直到把小于基準值元素的子數列和大于基準值元素的子數列排序。
//快速排序(數組排序) function QuickSort($arr){$num = count($arr);$l=$r=0;for($i=1;$i<$num;$i++){if($arr[$i] < $arr[0]){$left[] = $arr[$i];$l++;}else{$right[] = $arr[$i];$r++;}}if($l > 1){$left = QuickSort($left);}$new_arr = $left;$new_arr[] = $arr[0];if($r > 1){$right = QuickSort($right);}for($i=0;$i<$r;$i++){$new_arr[] = $right[$i];}return $new_arr; }總結
以上是生活随笔為你收集整理的PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP面试题:在PHP中error_re
- 下一篇: PHP面试题:合并两个数组有几种方式,试