[英]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.