PHP快速排序法代碼實例:
- <?php
- //快速排序法封裝函數(shù)
- function quick_Sort($array){
- //先判斷是否需要繼續(xù)進行,若所要排序數(shù)組只有一個元素或沒有元素則不需要排序
- $len = count($array);
- if($len <= 1)
- {
- return $array;
- }
- //如果所給數(shù)組元素大于1個,需要排序
- //選擇數(shù)組第一個元素作為標尺
- $key = $array[0];
- //初始化兩個數(shù)組
- $left_array = array();//小于標尺的
- $right_array = array();//大于標尺的
-
- //遍歷所給數(shù)組除了標尺外的所有元素,,按照大小關系放入兩個數(shù)組內(nèi)
- for($i=1;$i<$len;$i++){
- if($array[$i]<$key){
- //如果數(shù)組元素小于標尺則將該元素放入左數(shù)組
- $left_array[] = $array[$i];
- }else{
- //如果數(shù)組元素大于標尺則將該元素放入右數(shù)組
- $right_array[] = $array[$i];
- }
- }
- //再分別對 左數(shù)組 和 右數(shù)組進行相同的排序處理方式
- //遞歸調用這個函數(shù),并記錄結果
- $left_array = quick_Sort($left_array);
- $right_array = quick_Sort($right_array);
- //合并左數(shù)組 標尺 右數(shù)組
- //array_merge() 函數(shù)把兩個或多個數(shù)組合并為一個數(shù)組,。
- //如果鍵名有重復,后面的鍵名的值覆蓋前面的鍵名的值,。如果數(shù)組是數(shù)字索引的,,則鍵名會以連續(xù)方式重新索引。
- //語法 array_merge(array1,array2,array3...)
- return array_merge($left_array,array($key),$right_array);
- }
-
- $sortarray = array(13,89,23,9,19,88,56,78,34,69,10,14);
- print_r(quick_Sort($sortarray));
- ?>
|