2022年4月学习记录 - 时间复杂度总结
更新记录2022年4月学习记录 - 时间复杂度总结
2022-12-15 链接修复
链接修复:文章跳转链接修复
本文只是时间复杂度的简单介绍,学习做题请前往2022年9月学习记录 - 时间复杂度题目训练
时间复杂度
常见的时间复杂度
1.常数阶O(1)
2.对数阶O(log2n)
3.线性阶O(n)
4.线性对数阶O(nlog2n)
5.平方阶O(n2)
6.立方阶O(n3)
7.k次方阶O(nk)
8.指数阶O(2n)
最坏时间和平均时间
最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长。
在最坏情况下的时间复杂度为T(n)=O(n),它表示对于任何输入实例,该算法的运行时间不可能大于O(n)。
平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。
计算方法
求解算法的时间复杂度的具体步骤是:
⑴ 找出算法中的基本语句:算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。
⑵ 计算基本语句的执行次数的数量级:只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函 ...
2022年3月学习记录
使用技巧
变量声明
声明变量时一定要赋值!!!!!
未定义的一维数组放在 int main() 里会生成随机数!
类型参数
1template<typename T>
原来使用 int、float、char 等内置类型的地方,都可以用类型参数来代替。
int len = (int) sizeof(arr) / sizeof(*arr);
计算动态数组长度公式:用数组占用空间除以指针占用空间
get函数
gets()函数在C++14中被完全删除了,编译时会报错:
‘gets’ was not declared in this scope
相关功能可以用fgets()函数代替。
命名空间
1<algorithm>
算法相关
递归算法
时间复杂程度:O(log2n)
注意:一定要设置结束条件!!!
使用方法:
1.return 函数本身
2.直接调用
杨辉三角
公式一:
a[i][j]=a[i−1][j]+a[i−1][j−1]a[i][j] = a[i - 1][j] + a[i - 1][j - 1]a[i][j]=a[i−1][j]+a[i−1][j−1]
公式 ...
加密测试
bd25ed9264b080267271e137e33d0ce1951f5fbafb8d10f85092992d6139dd8b1d3eb851afe070e471b42eaa39d64958a1df3c2210dd12a233d58ca71cd056daa67e09dbcedb967c3c9ab3a4e634204024fdf261c93ca60d524fac6c1328bbb7d0ba802c4a768c213ff5a7de60effb8746d4128b7f9c016f2b406a63e68292ba22c3a670002d608c3208491c2c5c1980452628cdbc0f1f5d61a523d8aa5ef2b5809e4a8d80841d0dd63b555d78888fc19f825ac1014bee4567b61343c4f87e822f48de94a43a75debb4c7b2d2ecd3c7b
点我输入密码【密码:test】