时间复杂度
就是在学习数据结构时,就第一章的时间复杂度和空间复杂度,我就弄不明白了。。。到底表达的是什么意思了?有什么用呢?哎。。。
2015-10-21 08:50
程序代码:#include <stdio.h>
// 时间复杂度O(n)
int fun1()
{
int sum = 0;
for (int i = 1;i <= 100;i++)
{
sum += i;
}
return sum;
}
// 时间复杂度O(n/2)
int fun2()
{
int sum = 0;
for (int i = 1;i <= 50;i++)
{
sum += i + (101 - i);
}
return sum;
}
// 时间复杂度O(1)
int fun3()
{
return (1 + 100) * 100 / 2;
}
int main(int argc, char *argv[])
{
printf("%d\n", fun1());
printf("%d\n", fun2());
printf("%d\n", fun3());
return 0;
}

2015-10-21 09:19
程序代码:#include <stdio.h>
#define MAX 10
// 空间复杂度O(n^2)
int fun1(int m, int n)
{
int sa[MAX][MAX] = {{0}};
for (int i = 0;i <= m;i++)
for (int j = 0;j <= i;j++)
{
if (j == 0 || j == i) sa[i][j] = 1;
else sa[i][j] = sa[i-1][j-1] + sa[i-1][j];
}
return sa[m][n];
}
// 空间复杂度O(n)
int fun2(int m, int n)
{
int sa[MAX] = {0};
for (int i = 0;i <= m;i++)
for (int j = i;j >= 0;j--)
{
if (j == 0 || j == i) sa[j] = 1;
else sa[j] = sa[j] + sa[j - 1];
}
return sa[n];
}
// 空间复杂度O(x)
int fun3(int m, int n)
{
if (0 == n || n == m) return 1;
return fun3(m - 1, n) + fun3(m - 1, n - 1);
}
int main(int argc, char *argv[])
{
printf("%d\n", fun1(6, 3));
printf("%d\n", fun2(6, 3));
printf("%d\n", fun3(6, 3));
return 0;
}
[此贴子已经被作者于2015-10-21 09:46编辑过]

2015-10-21 09:37
2015-10-21 09:39
2015-10-22 09:32