当前位置: 首页>C++>正文

nlogn的算法有哪些,算法運行時間1、logN、N、NlogN 、N^2、N^3、2^n之間的比較

nlogn的算法有哪些,算法運行時間1、logN、N、NlogN 、N^2、N^3、2^n之間的比較

排序算法中,常常要求我們估算出最壞情況運行時間平均情況/期望運行時間。在估算運行時間時,我們常用到下面一些時間量:

?1?大部分程序的大部分指令之執行一次,或者最多幾次。如果一個程序的所有指令都具有這樣的性質,我們說這個程序的執行時間是常數。
?logN??如果一個程序的運行時間是對數級的,則隨著N的增大程序會漸漸慢下來,如果一個程序將一個大的問題分解成一系列更小的問題,每一步都將問題的規 模縮減成幾分之一?,一般就會出現這樣的運行時間函數。在我們所關心的范圍內,可以認為運行時間小于一個大的常數。對數的基數會影響這個常數,但改變不會太 大:當N=1000時,如果基數是10,logN等于3;如果基數是2,logN約等于10.當N=1 00 000,logN只是前值的兩倍。當N時原來的兩倍,logN只增長了一個常數因子:僅當從N增長到N平方時,logN才會增長到原來的兩倍。
?N?如果程序的運行時間的線性的,很可能是這樣的情況:對每個輸入的元素都做了少量的處理。當N=1 000 000時,運行時間大概也就是這個數值;當N增長到原來的兩倍時,運行時間大概也增長到原來的兩倍。如果一個算法必須處理N個輸入(或者產生N個輸出), 那么這種情況是最優的。
?NlogN?如果某個算法將問題分解成更小的子問題,獨立地解決各個子問題,最后將結果綜合起來?(如歸并排序,堆排序),運行時間一般就是NlogN。我們找不到一個更好的形容, 就暫且將這樣的算法運行時間叫做NlogN。當N=1 000 000時,NlogN大約是20 000 000。當N增長到原來的兩倍,運行時間超過原來的兩倍,但超過不是太多。
?
N平方
?如果一個算法的運行時間是二次的(quadratic),那么它一般只能用于一些規模較小的問題。這樣的運行時間通常存在于需要處理每一對輸入 數據項的算法(在程序中很可能表現為一個嵌套循環)中,當N=1000時,運行時間是1 000 000;如果N增長到原來的兩倍,則運行時間將增長到原來的四倍。
?N三次方?類似的,如果一個算法需要處理輸入數據想的三元組(很可能表現為三重嵌套循環),其運行時間一般就是三次的,只能用于一些規模較小的問題。當N=100時,運行時間就是1 000 000;如果N增長到原來的兩倍,運行時間將會增長到原來的八倍。
?2的N次方?如果一個算法的運行時間是指數級的(exponential),一般它很難在實踐中使用,即使這樣的算法通常是對問題的直接求解。當N=20時,運行時間是1 000 000;如果增長到原來的兩倍時,運行時間將是原時間的平方!

nlogn的算法有哪些。?

常見排序算法運行時間比較:

運行小時數怎么計算、?

算法最壞情況運行時間平均情況/期望運行時間
插入算法O(n^2)O(n^2)
快速排序O(n^2)O(nlogn)【期望】
歸并排序O(nlogn)O(nlogn)
堆排序O(nlogn)O(1)
希爾排序O(n^2)O(n^(3/2))
桶排序O(n^2)O(n)【平均情況】

?

1KB=2^10=1024

1MB=2^20=2^10*2^10=1024*1024約等于1 000 000(百萬)

1GB=2^30=2^10*2^10*2^10=1024*1024*1024約等于1 000 000 000 (十億)

https://www.nshth.com/cplus/338380.html
>

相关文章:

  • nlogn的算法有哪些
  • 運行小時數怎么計算
  • 時間復雜度為logn的排序算法
  • 算法的執行時間與什么有關
  • 最短查找時間優先算法
  • 算法時間和空間復雜度
  • 數據結構log以什么為底
  • logn和loglogn比較
  • 樹莓派的控制方法,第二篇 樹莓派基本外設基礎篇
  • 手機如何連接外設,iOS連接外設的幾種方式
  • switch可以外接鍵鼠嗎,別再給手機外接OTG鍵鼠玩刺激戰場了:其實還能這樣操作
  • [阿發你好]C/C++學習指南
  • 輸入法哪個最好用,wsl2中安裝中文輸入法
  • 字符串中引入變量方法,字符串處理、變量初始值處理、擴展的腳本技巧、正則表達式
  • 某計算機內存容量是512kb,某計算機主存容量為512kb,Cache容量為16kb,每塊有16個字,每字32位。 (1...
  • 中國工商網商標查詢,工商局爬蟲 商標網爬蟲
  • iOS真機調試TestFlight安裝及提交App Store審核教程
  • 蘋果app上架流程,小白如何在ios中安裝ios上架
  • 蘋果彈出提交表格是什么,蘋果TestFlight測試操作圖文教程(測試后提交App Store審核)
  • 四門外語傍身:外語,讓我的大學如此完美
  • D3D Surface/Texture SDL DDraw渲染視頻的區別和疑問
  • 手機VR播放器,Android VR Player(全景視頻播放器) [10]: VR全景視頻渲染播放的實現(exoplayer,glsurfaceview,o
  • Qt渲染視頻常見問題(視頻渲染窗口上子窗口設置透明出現陰影問題、主窗口縮放導致視頻渲染窗口部分出現視頻閃爍問題)
  • 視頻解析網站源碼,ijkplayer源碼分析 視頻渲染流程
  • 一分鐘的視頻渲染要多久,基礎教程|如何在數分鐘時間內渲染超清精美視頻?
  • Metal(六) 案例之視頻文件的渲染
  • flutter開發小程序,最強整理!寫給程序員的Flutter詳細教程,大廠直通車!
  • c++黑客編程揭秘與防范,C/C++截獲騰訊QQ網絡聊天系統內容和登錄密碼,教你做一個黑客!
  • 支付行業具體做什么,做支付需要了解哪些行業知識
  • 5大底層邏輯,淺談HyperLogLog底層算法邏輯
  • c++實現復數的加減乘除,【C++】輔助C++計算復數(代碼解釋的很清楚)
  • nlogn的算法有哪些,算法運行時間1、logN、N、NlogN 、N^2、N^3、2^n之間的比較
  • 開源圖片庫,幾種常用圖像處理開源庫簡介及使用總結
  • 圖像處理和計算機視覺,《圖像處理與計算機視覺算法及應用》讀后感
  • gps定位,側邊欄固定定位到版心兩側
  • css版心怎么設置,[css]版心和布局流程
  • 瀏覽器多個窗口怎么設置在一個頁面,網頁多種版心適應多屏幕技巧
  • 前端學習之版心和布局流程