C++中的时间复杂度O(1)与O(n)有什么区别

来源:百度知道 编辑:UC知道 时间:2024/09/24 23:35:13
C++中的时间复杂度O(1)与O(n)有什么区别
for(int i=0;i<1000;i++)与for(int i=0;i<n;i++) 其中n是用户输入的
这两个有什么不一样
常数 n
for(int i=0;i<1000;i++) for(int i=0;i<n;i++) 用户输入1000
for(int i=0;i<10000;i++) for(int i=0;i<n;i++) 用户输入10000
for(int i=0;i<10000;i++) for(int i=0;i<n;i++) 用户输入100000
我认为这两个还是成线形比 而不是O(1)成常数比, O(n)成线形比

C++中的时间复杂度O(1)与O(n)的主要区别在于:

1、时间复杂度O(1)是常数阶,其基本操作重复执行的次数是一个固定的常数,执行次数不存在变化;

2、而时间复杂度O(n)是线性阶,其基本操作重复执行的次数是与模块n成线性相关的,其值会随着模块n的变化而变化,当模块n的规模确定为定值后,其时间复杂度转化为O(1)。

扩展资料

1.时间复杂度的计算方法:

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得T(n)/f(n)的极限值(当n趋近于无穷大时)为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

例如:某算法的执行次数为 时间复杂度(C语言) 数据结构中的时间复杂度是什么? 时间复杂度是O(n^2)是什么意思? 求一个算法把n个数中的第k大的数求出来,要求时间复杂度为O(n) 单链表 插入元素 时间复杂度能否为O(1)?删除呢? 算法时间复杂度(C语言描述) 有关数据结构中的时间复杂度的问题 关于数据结构中的时间复杂度的问题 时间复杂度 谁知道空间复杂度为o(1)的归并排序算法?