簡體   English   中英

根據運行時間確定程序的時間復雜度

[英]Determine time complexity of program based on its runtime

我正在尋找一種基於程序運行時間確定程序時間復雜度的方法。

我已經繪制了針對不同大小的n的結果,現在正在尋找一種確定常數c和n0的方法,以使每n≥n0的f(n)≤c *(g(n))。

關於程序:

輸入:n,元素數

輸出:運行時間

測量數據的所有步驟已完成100次,以獲取程序的平均運行時間。

不同大小的n的一些示例值:

n………………運行時間(毫秒)

1000……….1,6

10000……..222,8

100 000……25213

幫助非常感謝!

佩佩法莎

大多數編程語言都具有獲取當前時間的恆定時間函數。 您可以通過在程序的開始和結束之間輸入時間差來計時程序,並為n的不同大小繪制這些時間。

您肯定需要更多數據點才能確定。 但看起來您的n乘以10,大約將您的運行時乘以100,所以n ^ 2是我的猜測。

至於常數,您只需要在對數刻度上繪制它,然后找到帶有y軸的截距(從最大值(即大於n0的值)推斷出)將為log(c)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM