麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 邏輯算法 > 正文

PHP快速排序算法實現的原理及代碼介紹

2020-03-22 17:54:00
字體:
來源:轉載
供稿:網友

本篇文章給大家帶來的內容是關于PHP快速排序算法實現的原理及代碼介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

算法原理

下列動圖來自五分鐘學算法,演示了快速排序算法的原理和步驟。

quick.gif

步驟:

從數組中選個基準值將數組中大于基準值的放同一邊、小于基準值的放另一邊,基準值位于中間位置遞歸的對分列兩邊的數組再排序

代碼實現

function quickSort($arr) $len = count($arr); if ($len = 1) { return $arr; $v = $arr[0]; $low = $up = array(); for ($i = 1; $i $len; ++$i) { if ($arr[$i] $v) { $up[] = $arr[$i]; } else { $low[] = $arr[$i]; $low = quickSort($low); $up = quickSort($up); return array_merge($low, array($v), $up);}

測試代碼:

$startTime = microtime(1);$arr = range(1, 10);shuffle($arr);echo before sort: , implode( , , $arr), /n $sortArr = quickSort($arr);echo after sort: , implode( , , $sortArr), /n echo use time: , microtime(1) - $startTime, s/n 

測試結果:

before sort: 1, 7, 10, 9, 6, 3, 2, 5, 4, 8after sort: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10use time: 0.0009009838104248s

時間復雜度

快速排序的時間復雜度在最壞情況下是O(N2),平均的時間復雜度是O(N*lgN)。

這句話很好理解:假設被排序的數列中有N個數。遍歷一次的時間復雜度是O(N),需要遍歷多少次呢?至少lg(N+1)次,最多N次。

1) 為什么最少是lg(N+1)次?快速排序是采用的分治法進行遍歷的,我們將它看作一棵二叉樹,它需要遍歷的次數就是二叉樹的深度,而根據完全二叉樹的定義,它的深度至少是lg(N+1)。因此,快速排序的遍歷次數最少是lg(N+1)次。

2) 為什么最多是N次?這個應該非常簡單,還是將快速排序看作一棵二叉樹,它的深度最大是N。因此,快讀排序的遍歷次數最多是N次。

【相關推薦:PHP視頻教程】

以上就是PHP快速排序算法實現的原理及代碼介紹的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av在线大全 | 欧美国产综合视频 | 一级网站 | 毛片在线视频观看 | 草草视频在线播放 | 久久成人免费网 | 久久综合婷婷香五月 | 欧美成人精品h版在线观看 国产一级淫片在线观看 | 久国产 | 欧美乱淫 | 污黄视频在线观看 | 欧美一区二区精品夜夜嗨 | 思思久而久而蕉人 | 久久久久亚洲a | 欧美性猛交一区二区三区精品 | aa国产视频一区二区 | 一级大黄毛片免费观看 | 日本羞羞的午夜电视剧 | 久久免费观看一级毛片 | 国产乱一区二区三区视频 | 泰剧19禁啪啪无遮挡大尺度 | 调教小男生抽打尿孔嗯啊视频 | 一级片999 | 高清av在线| 精品久久久久久国产 | 九九热国产视频 | 55夜色66夜色国产精品视频 | 久久国产精品久久久久久电车 | 成人一级视频在线观看 | 蜜桃传媒视频麻豆第一区免费观看 | 日韩美香港a一级毛片 | 黄视频网址 | 中文日韩欧美 | 国产精品99久久久久久大便 | 欧美视频国产精品 | 黄污网站在线观看 | 日本特级a一片免费观看 | 久久人人爽人人爽人人片av高清 | 中文字幕在线视频日本 | 成人短视频在线观看免费 | 91麻豆蜜桃一区二区三区 |