下面c语言程序的时间复杂度是o(N)吗

数组a[N],存放了1至N-1个数,其中某个数重复一次.写一个函数,找出被重复的数字.
int num;
int s=0;
for(int i=0;i<n;i++){
s+=a[i];

}
num = s-n*(n-1)/2
(num即那个重复的数)

第1个回答  2014-09-22
按数量级递增排列,常见的时间复杂度有:
常数阶O(1),对数阶O(log2n),线性阶O(n),
线性对数阶O(nlog2n),平方阶O(n^2),立方阶O(n^3),...,
k次方阶O(n^k),指数阶O(2^n)。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。本回答被网友采纳
第2个回答  2014-09-22
没错 一层for 是o(n)本回答被提问者采纳
第3个回答  2014-09-22
是的。。。

如何用c语言编程,使得:有n个整数,使其前面各数顺序向后移m
这种分圈操作实质上是对置换的分解。原问题中的置换 (345612) 可以被分解为 (351) 和 (462) 的乘积。这种分解使得问题简化为分别处理每个圈中的元素顺序。编写代码实现这一算法,自行操作即可。注意:该算法相较于其他方法在计算复杂度上有优势,但在实际运行效率上可能不尽如人意,尤其是当需要移动的...

C语言描述的数据结构中时间渐进复杂度(O())的加法计算
时间复杂度描述的是执行算法所需的时间与输入数据规模之间的关系。它关注的是算法执行时间的增长速率,与问题规模的增大呈正比。时间复杂度的表示通常使用大O符号(O)。大O符号用于描述算法的时间复杂度,表示算法执行时间的增长上限。只关注最高次项,忽略常数因子和低次项。例如:n^2, 2n, n, n^2...

C语言中的算法里,时间复杂度可以记为O(N平方)。其中的字母O 表示什么...
大O符号是用于描述函数渐近行为的数学符号,一般用来刻画被截断的无穷级数剩余项,最先由德国数论学家保罗·巴赫曼在其著作《解析数论》引入,并在另外一个德国数论学家艾德蒙·朗道的著作中推广,所以又称为朗道符号。大O是"order of..." (……阶)的意思,最初是一个大写的希腊字母'O'(Omicron),...

C语言中qsort函数笔记
qsort函数在C语言中头文件“stdlib.h”中定义,排序的时间复杂度为O(nlogn),是快速排序的一种实现。在力扣平台上的“存在重复元素”题中,使用冒泡排序可能会导致超时,而采用qsort则能避免此问题。对于int类型数组的排序,qsort的第一个参数为数组首地址,第二个参数为数组长度,第三个参数为数组元素...

C语言写程序时 出现的时间复杂度 具体是什么意思?
O(n)=n^2。数执行语句的执行次数,就是时间复杂度。注意:(1)找到正确的执行语句。(2)for循环中的初始值和终止值。for(i=0;i<n;i++)i值变化是从0到n-1,共n次。for(i=0;i<=n;i++)i值变化是从0到n,共n+1次。(3)注意for循环的调用顺序,从里面到外面进行的。

计算以下程序的运行次数和时间复杂度,主要说一下详细过程,我是C语言数 ...
运行次数:9次 时间复杂度:O(1)因为这个程序循环次数只是有限次,其他赋值以及输出操作时间复杂度只按1算,加起来还是等于一个常数,故时间复杂度为O(1);如果将s<10改为 s<n,那么时间复杂度将会是O(n)

用C语言描述下列算法,并给出算法的时间复杂度。
所以,把每一层循环设一个函数分别为:j(n),k(n),t(n)则有 i(n)=j(0)+...+j(n-1)j(n)=k(0)+...+k(n-1)k(n)=t(0)+...+t(n-1)i(0)=j(0)=k(0)=0 t(n)=1 而总循环数是i(0)+i(1)...+i(n-1)可以根据递推条件得出准确值 所以算法复杂度是o(i(0)+...

...在整型数组A[n]中查找值为K的元素,分析时间复杂度,急急急
从头开始扫描,并设一个变量find=0,如果找到了一个值等于K,输出相应位置,如果一直扫描到结尾还是没有符合条件的值,输出-1。算法复杂度为O(n)。C语言版程序:include <stdio.h>#define n 100 \/\/这个值可以根据n的大小改#define n 10 \/\/这个值可以根据k的大小改main(){int i;long a[n+1...

c语言打印长度为m的字符串n次时间复杂度是多少?
puts(str);或printf("%s\\n",str);那时间复杂度就是:O(n)。2 用字符输出函数,如:for(i=0;i<n;i++){ for(j=0;j<m;j++)putchar(str[j]);putchar('\\n');} 那时间复杂度就是:O(n*m)。事实上,求时间复杂度不需要考虑底层,只需要考虑主要循环的执行次数。

【C语言】这个for程序是什么意思?执行了多少次?时间复杂度是多少?
时间复杂度是O(n*n);外循环: i=1 内循环: j=1 i=1 s=1 内循环: j=2 i=1 s=2 内循环: j=3 i=1 s=3 外循环: i=2 内循环: j=1 i=2 s=4 内循环: j=2 i=2 s=5 内循环: j=3 i=2 s=6 外循环: i=3 内循环: j=1 ...

相似回答