[英]Time complexity of algorithm when input is O(n log n)
我有一個在 O(m) 時間內運行的算法。 該算法接收一組包含 m 個條目的數據。
通過指定嚴格的正整數輸入 n 隨機生成數據。 生成的條目數為 O(n log n)。
編輯
單獨地,生成數據的時間復雜度與 n(或 O(1))無關,這意味着給定整數 n,條目會立即隨機生成。 結果條目的數量是隨機的,但是是 O(n log n)。 例如 n = 10,那么生成的條目數是某個常數乘以 10(日志 10)。
數據是事先生成的。 然后將得到的 m 個條目作為輸入輸入到算法中。
題
然后我可以假設算法在 O(n log n) 時間內運行嗎?
您的問題中有一些含糊不清的地方,要么是有意幫助您內化輸入大小和運行時復雜性之間的關系,要么是由於溝通不暢造成的。
所以盡我所能解釋這個場景:
您的算法復雜度O(m)
相對於 m是線性的。
因此,由於We assume that generating the data is independent of input. ie O(1).
We assume that generating the data is independent of input. ie O(1).
,您的時間復雜度僅取決於您指定的生成條目的某些n
。
所以是的,您可以說該算法在O(n log n)
時間內運行,因為它對大小為m
的輸入沒有任何作用。
針對您更新的問題:
仍然很難理解,因為一些關鍵詞指的是不同的東西。 但總的來說,我認為這就是你所得到的:
查看差異:假設您的算法不是線性的,而是二次 O(m^2),那么它相對於 n 的時間復雜度為 O(n^2 log^2 n)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.