1 求算法时间复杂度 for(k=1;k<=n;k++) for(j=1;j<=k;j++) s=s+j; t=1;m=0; for(k=1;k<=n;k++){ t=t*2; for(j=t;j<=n;j++) m++; } 2 简述渐进符号𝑂𝑂、𝛺𝛺、𝛩𝛩的含义 3 举例说明如何定义和遍历vector容器中的元素
时间: 2023-06-12 17:02:10 浏览: 246
1. 求算法时间复杂度:
该算法可以分成两部分:
第一部分:
嵌套了两个for循环,时间复杂度分别为 O(n) 和 O(n),所以这部分的时间复杂度为 O(n^2)。
第二部分:
同样嵌套了两个for循环,外层循环时间复杂度为 O(n),内层循环时间复杂度为 O(logn)。因此,这部分的时间复杂度为 O(nlogn)。
整个算法的时间复杂度为 O(n^2 + nlogn)。
2. 渐进符号
- 大O符号(O):给出一个算法的最坏情况下的时间复杂度上界。例如,如果一个算法的复杂度为 O(n),则算法的最坏情况下的时间复杂度不会超过 n 的某个常数倍。
- Omega符号(Ω):给出一个算法的最好情况下的时间复杂度下界。例如,如果一个算法的时间复杂度为 Ω(n),则算法的最好情况下的时间复杂度不会低于 n 的某个常数倍。
- Theta符号(Θ):给出一个算法的时间复杂度上界和下界。例如,如果一个算法的时间复杂度为 Θ(n),则算法的时间复杂度既不会超过 n 的某个常数倍,也不会低于 n 的某个常数倍。
3. vector容器的定义和遍历
vector是一种动态数组,可以在运行时分配空间。(一开始申请的空间可能比实际需要的空间大)。
定义vector:可以使用以下语句定义一个vector:
vector<int> vec;
可以在括号中传入类型,这里使用的是int类型。
添加元素到vector:可以使用以下语句将元素添加到vector:
vec.push_back(1);
使用push_back()函数将元素添加到vector中,上述语句添加的是整数1。
遍历vector:可以使用以下循环语句来遍历vector中的元素:
for(int i=0; i<vec.size(); i++){
cout<<vec[i]<<endl;
}
使用循环变量i遍历vector中的元素,并使用cout函数打印每个元素的值。这里使用了vector的size()函数获取vector的大小。
阅读全文