我不知道如何回答這個問題,我知道如何找到時間復雜度,但就是無法理解這一點。
uj5u.com熱心網友回復:
時間復雜度表示輸入資料的變化率與為特定演算法處理資料所需的時間之間的關系。
這意味著雖然A線性時間復雜度的演算法可能需要 1 天才能完成處理n == 1000,B但同樣具有線性時間復雜度的演算法可能需要一周時間才能完成處理相同的資料,數量和質量。但是當您知道演算法A是線性的并且需要 1 天才能完成時n == 1000,您就會知道大約需要 10 天A才能完成n == 10000。
現在,您知道某些具有線性復雜度的演算法需要一天時間。給你一個完全不同的演算法(我們必須假設它是不同的,因為時間復雜度完全不同),復雜度為n log n,并被要求猜測需要多長時間?你不可能知道。你不知道在起作用的常數。因此,根據您測驗過的線性演算法做出假設是錯誤的。
如果您想猜測線性演算法所需的時間,您需要測驗該演算法并根據您對該演算法所做的測驗做出假設。這是因為,我想強調的是,時間復雜度表示輸入資料量的變化率與演算法完成所需的時間之間的關系。關系是這個特定演算法的時間和它的輸入之間的關系。
uj5u.com熱心網友回復:
讓 m 是資料的長度。O(N)演算法需要C次m=1天來處理資料;在這種情況下,C 是一個常數,等于 1 天 / 米。
現在 O(log N) 演算法應該用 C 乘以 log m 來處理資料。然而,這種情況下的常數 C 不一定等于第一種情況下的常數 C。
因此,您無法確定 O log N 演算法將花費多少時間來處理相同的資料。它可能更少、相等或更多時間。但是,資料越大,第二種演算法的性能就越好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/367311.html
上一篇:如何撰寫一個實作混沌映射的回圈?
