用C语言描述下列算法,并给出算法的时间复杂度。

如题所述

第1个回答  2019-02-26
看看这个
每个循环都和上一层循环的参数有关。
所以要用地推公式:
设i(n)表示第一层循环的i为n时的循环次数,注意到他的下一层循环次数刚好就是n,分别是0,1,2...n-1
所以,把每一层循环设一个函数分别为: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)+i(1)...+i(n-1))
第2个回答  2019-06-15
你说的用c描述下列算法?还是说用算法描述这些问题??
对于(1):只需一行一行(或一列一列)的相加即可,两层for循环,时间复杂度为n平方;
(2)和(3)都可以用一个排序算法就行,不同的是(2)可以直接用if~else判断就可以给出答案,时间复杂度o(1);而(3),可用的排序算法就比较多了,选择排序,冒泡排序,快速排序等等……不同的排序算法时间复杂度也不一样……