空间复杂度主要是数据结构占的,拿数组来说,开1..n的数组,一般考试的内存限制可以开到n=10000000左右,就是10^7,时间复杂度根据程序的来算,拿循环来说,套用在一起的循环是相乘的
比如
for i:=1 to m do
for j:=1 to n do
begin
……
end;
此时复杂度为O(m*n);
如果并列的语句如
for i:=1 to m do begin ………………;end;
for i:=1 to n do begin ………………;end;
那么复杂度为O(m+n);
优化冒泡的复杂度是(n*(n+1)/2)
堆排、快排O(n*log(n))
如果一个程序的时间复杂度为O(x)那么考试的机子大约1秒可以处理
x=100000000大约是10^8。
就这样了,不懂的继续提问
程序空间复杂度/时间复杂度是怎么算的(最好说的是pascal)rt,还有,知道时间复杂度的话如何判断这个程序大约要用多少时间?知道空间复杂度的话如何判断这个程序内存占多大?因为信息学竞赛有必要,答的好的一定加分!
补充一下,搜索一般是O(n^n),动规是O(n^2),递推是O(n),数学方法是O(1)。
空间复杂是储存空间的大小和变换等等决定的...
时间复杂是逻辑比较、赋值等基本运算的次数决定的...