ホームページ >バックエンド開発 >PHPチュートリアル >PHP での素早い並べ替えのためのアルゴリズムのアイデアとコード
この記事の内容は、PHP でクイック ソートを実装するためのアルゴリズムのアイデアとコードに関するものであり、一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。
中心的なアイデア: サイズに応じて 2 つの部分に分割し、それらを再帰的に並べ替え、前方と後方を参照します (分割関数)。
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 クイック ソートのアイデア クイック ソートの計算
以上がPHP での素早い並べ替えのためのアルゴリズムのアイデアとコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。