/*
空间复杂度:多开了多少辅助空间
多开了一个辅助的数组:O(n)
多开了一个辅助的二维数组:O(n^2)
多开常数空间:O(1)
*/
//递归与非递归的空间复杂度
#include<iostream>
#include<cassert>
using namespace std;
int sum1(int n) {
assert(n >= 0);
int ret = 0;
for (int i = 0; i <= n; i++) //O(1)
ret += i;
return ret;
}
int sum2(int n) { //O(n)
assert(n >= 0);
if (n == 0)
return 0;
return n + sum2(n - 1);
}
int main() {
cout << sum1(1000) << endl;
cout << sum2(1000) << endl;
return 0;
}
空间复杂度:多开了多少辅助空间
多开了一个辅助的数组:O(n)
多开了一个辅助的二维数组:O(n^2)
多开常数空间:O(1)
*/
//递归与非递归的空间复杂度
#include<iostream>
#include<cassert>
using namespace std;
int sum1(int n) {
assert(n >= 0);
int ret = 0;
for (int i = 0; i <= n; i++) //O(1)
ret += i;
return ret;
}
int sum2(int n) { //O(n)
assert(n >= 0);
if (n == 0)
return 0;
return n + sum2(n - 1);
}
int main() {
cout << sum1(1000) << endl;
cout << sum2(1000) << endl;
return 0;
}