Time Limit Exceeded 解析

来源:互联网 发布:太原黑马程序员 编辑:程序博客网 时间:2024/04/29 22:39

超时的一个主要原因是算法时间复杂度太高,此时应考虑选用合理的数据结构降低你的程序的时间复杂度,或者更换算法。我们做过的每一个题都有一个时间限制,通常是1000MS,即1秒,也有2秒,5秒,10秒的题。而每一个题的数据范围题目会事先说明,比如n<=100000。假如你的程序有一个for循环进行n次,那它运算次数的数量级为10^6,又如你的程序有两层嵌套的for循环,每层都循环n次,那它运算次数至少为n*n即10^12。一般的计算机来说1秒内的运算次数为10^7到10^8左右,那么显然循环n次的算法可以在1秒内跑完,而循环n*n的算法不可能在1秒内跑完。所以通过预估你的程序的时间复杂度,加上题目给的数据范围和时间限制,你就大概能判定你的程序是否超时了。更多的关于时间复杂度的理论,请自行参考《算法导论》。

0 0