日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP实现快速排序

發布時間:2024/9/30 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP实现快速排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.核心要點
取一個值(最好是中間值),將數組中的元素依次和這個值相比較,如果大于放到新建的右邊的數組中,如果小于此值,將原數組中的元素放到左邊的數組中,然后依次遞歸左邊的數組和右邊的數組,但是遞歸需要跳出條件,當傳入的數組是最后一個元素時,也就是數組的數量等于1就不用排序了,直接返回,然后合并返回的數據。

原理:先將數組慢慢分解(選等級),再將數組慢慢合并(貪吃蛇原理)

public function quicksort($arr){$count = count($arr);if ($count <=1){return $arr;}$key = $arr[0];$left = $right = array(); //必須寫,否則array_merge不管用//第一種array_shift($arr);foreach ($arr as $value){if ($value <$key){$left[] = $value;}else{$right[] = $value;}}//第二種 // for($i=1;$i<$count;$i++) // { // if ($arr[$i] <$key) // { // $left[] = $arr[$i]; // }else{ // $right[] = $arr[$i]; // } // }$l_re = self::quicksort($left);$r_re = self::quicksort($right);$result = array_merge($l_re,array($key),$r_re);return $result;}public function demo(){$arr = array(1,6,9,7,8,3,2,4,1);$re = $this->quicksort($arr);dump($re);}

總結

以上是生活随笔為你收集整理的PHP实现快速排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。