数据结构_事件复杂度的推导方法_推导O 阶
来源:互联网 发布:tinyumbrella官网 mac 编辑:程序博客网 时间:2024/05/21 03:56
推导大O阶方法:
1. 用常数1取代运行时间中的所有加法常数
2. 在修改后的运行次数函数中,只保留最高阶项
3. 如果最高阶存在且不是1,则去除与这个项相乘的常数,得到的结果就是大O阶
时间复杂度的分类:
1. 常数阶
#include <iostream>using namespace std;int main(){
int n = 0;
cin>>n;
int sum = (1 + n)*n/2;//O(1)
cout<<sum<<endl; return 0;}2. 先性阶
#include <iostream>using namespace std;int main(){ for (int i = 0;i < 10; ++i)//O(n) { cout<<"i = "<<i<<endl; } return 0;}3. 对数阶
#include <iostream>using namespace std;int main(){ int count = 1; while (count < 20) { count *=2;//O(logn) } return 0;}4.平方阶
for (int i = 0;i < 10; ++i){ for (int j = 0;j < 10; ++j)//O(n^2) { ......; }}
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
特别提醒:
递归虽然非常的简练,但是效率是非常低下的,不管是在时间复杂度还是空间复杂度(用户空间反复的开辟栈帧和释放栈帧)都非常的高。
0 0
- 数据结构_事件复杂度的推导方法_推导O 阶
- 如何计算算法的复杂度,如何计算推导O阶方法
- 算法时间复杂度-推导大O阶
- 推导大O阶方法
- 算法的时间复杂度推导方法
- 171031_扭矩和功率的计算公式推导及记忆方法
- [数据结构]算法基本概念和推导大O阶步骤
- 机器学习_正规方程(最小二乘法)的推导
- Range 的 reduce(_+_)函数做累加的原理以及语法推导
- 算法时间复杂度的简单推导
- 2.3-3时间复杂度的推导过程
- 数据结构_时间复杂度和空间复杂度
- 大O表示法_时间复杂度
- 数据结构_离散事件的模拟
- 快速排序的时间复杂度nlogn是如何推导的??
- 折半查找的时间复杂度log2(n)的推导
- n*log n复杂度的差分方程推导
- 考试笔记03_数据结构_基本算法复杂度
- LinuxC .1 作业
- mysql获取某个表的所有字段名
- 策略模式
- 史上最全设计模式导学目录(完整版)
- 弹出对话框选择相机或者图库内的图片
- 数据结构_事件复杂度的推导方法_推导O 阶
- Java基础知识之线程
- 暴力推导 Beta 函数与 Gamma 函数关系式
- 关于反拦截
- 做男人的第几任女朋友才是最幸福的
- caffe源码学习(3)--卷积层
- 代码中引用资源
- Spring的事物管理框架源码分析
- 对于接口回调的简单理解