(1)对于时间复杂度
通常题目给出的是1秒的运行时限,这也是最常见的时间限制(或最常见的时间限制数量级)
对于该时限,通常,我们所设计的时间复杂度不能超过百万级别,及不能超过一千万。
若算法的时间复杂度是O(n^2),则该n(往往在题目中会给出数据范围),那么该n不应该大于3000.
否则将会到达我们所说的千万数量级复杂度,从而程序运行时间超过题目所给出的用时限定。
因此,可以对自己的程序在最坏情况下的复杂度进行一个估算,假设确定其在百万数量级之内,那么
你的程序一般是不会超过时间限制的。
(2)对于空间复杂度
1GB=2^10MB
1MB=2^10KB
1KB=2^10B
1B =1 Byte(字节) = 8 bit(位)
C/C++数据范围速查表:
char 1Byte -128~+127
short 2Byte -32767~+32768
unsigned short 2Byte 0~65536
int 4Byte -2147483648~2147483647(10^9数量级)
unsigned int 4Byte 0~4294947295
long ==int
long long 8Byte -9223372036854775808 ~ +9223372036854775807(10^18数量级)
double 8Byte 1.7 * 10^308