這篇文章帶給大家的內容是關於php實現快速排序的演算法思想與程式碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
核心思想:依大小一分為二,分別遞歸排序,瞻前顧後(分割 函數)。
php程式碼如下:
<?php function quickSort($arr){ $resultArr=qSort($arr,0,count($arr)-1); return $resultArr; } function qSort($arr,$low,$high){ if($low<$high){ //算出枢轴值 $partRes=partition($arr,$low,$high); $arr=$partRes["resultArr"]; $arr=qSort($arr,$low,$partRes["pivot"]-1);//对低子表递归排序 $arr=qSort($arr,$partRes["pivot"]+1,$high);//对高子表递归排序 } return $arr; } function partition($arr,$low,$high){ $pivotkey=$arr[$low]; //用子表的第一个记录作枢纽记录 while ($low<$high){ //从表的两端交替向中间扫描 while ($low<$high&&$arr[$high]>=$pivotkey){ $high--; } $arr=swap($arr,$low,$high);//将比枢轴记录小的记录交换到低端 while ($low$low,"resultArr"=>$arr);//返回枢轴所在位置 } function swap($arr,$index1,$index2){ $pivotkey=$arr[$index1]; $arr[$index1]=$arr[$index2]; $arr[$index2]=$pivotkey; return $arr; } $arr=array(9,1,3,2,6,7,4,8); $resultArr=quickSort($arr); echo implode(',',$resultArr);
相關文章推薦:
#快速排序PHP實作php 快速排序法php 快速排序的思維快速排序算
以上是php實現快速排序的演算法思想與程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!