程式寫好跑不完?Time Limit Exceeded怎麼辦?. - Medium
文章推薦指數: 80 %
本篇將簡單介紹一下在寫程式時容易遇到的問題:Time Limit Exceeded (TLE)。
像LeetCode 等judge system 為了不讓讀者每次的submit 佔過多的時間,都會 ...
GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWrite程式寫好跑不完?TimeLimitExceeded怎麼辦?—程式人都該學會的技能PhotobyChrisRiedonUnsplash前言在這個時代,程式可說是全民運動,不論科系、目的皆有機會碰到程式。
程式說好上手其實也不容易,若只憑直覺寫程式的話可能會遇到一些問題。
本篇將簡單介紹一下在寫程式時容易遇到的問題:TimeLimitExceeded(TLE)。
像LeetCode等judgesystem為了不讓讀者每次的submit佔過多的時間,都會設定時間的上限,因此TLE的意思就是程式跑一段時間仍沒有跑完,超過時間限制,於是報錯。
除了judgesystem之外,當我們在自己的電腦跑程式時,也可能會出現程式跑了許久仍沒有跑完而電腦發燙的窘境(尤其是在做大數據分析時,程式跑了三天三夜都跑不完⋯⋯)JudgeSystem出現TLE或是程式跑不完並不一定代表邏輯有誤,而是讀者的想法太過「直觀」(例如暴搜),使程式的效能過低。
而效能量化的方式之一為計算時間複雜度(TimeComplexity)。
時間複雜度TimecomplexityBigO一般講到計算時間複雜度時,通常會提到BigO,BigO為一個數學函數,可以用來評估最糟的情況下要花多少時間來跑這個code。
BigO的定義如下:Supposeifandonlyif存在正實數M和實數x0,使得對於所有x>x0,均有|f(x)|≤M|g(x)|,我們就可以認為f(x)=O(g(x))。
參考資料:維基百科讀者如果讀到這裡還不知道時間複雜度為何不用擔心,快速計算時間複雜度的方法(i.e.懶人包)為:Step1.將所有步驟的數目相加Step2.取最高次方並去掉係數即是這份程式的時間複雜度例如:通常假設資料量為n,將所有步驟的數目相加後得到6n²+3n+2,最高次方為6n²,去掉係數後為n²,因此我們可以說該份程式的時間複雜度O(n²)。
常見的時間複雜度O(1)
延伸文章資訊
- 1due to time limit - 英中– Linguee词典
大量翻译例句关于"due to time limit" – 英中词典以及8百万条中文译文例句搜索。
- 2exceed the time limit - 英中– Linguee词典
大量翻译例句关于"exceed the time limit" – 英中词典以及8百万条中文译文例句搜索。
- 3程式寫好跑不完?Time Limit Exceeded怎麼辦?. - Medium
本篇將簡單介紹一下在寫程式時容易遇到的問題:Time Limit Exceeded (TLE)。 像LeetCode 等judge system 為了不讓讀者每次的submit 佔過多的時間,都...
- 4Time limit - Wikipedia
A time limit or deadline is a narrow field of time, or a particular point in time, by which an ob...
- 5time limit中文(繁體)翻譯:劍橋詞典
We've set a time limit of ten minutes for each child's turn on the trampoline. 我們限定每個孩子在蹦蹦床上只能玩十分...