数据结构,计算语句频度

for(i=1;i<=n;i++){for(j=1;j<=i;j++){for(k=1;k<=j;k++)x+=delta;//这个语句的频度如何计算,求具体方法}答案是... for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
for(k=1;k<=j;k++)
x+=delta; //这个语句的频度如何计算,求具体方法
}
答案是1/12[n(n+1)(2n+3)] 不懂怎么算出来的
展开
 我来答
punk_121
2011-07-25
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
对于上面的频度,因为是一个三重循环,所以列一个表给你吧,k表示语句@执行的次数:

i j k
1 1 1
2 1~2 1+(1+2)
3 1~3 1+(1+2)+(1+2+3)
4 1~4 1+(1+2)+(1+2+3)+(1+2+3+4)
. . .
. . .
. . .
n 1~n 1+(1+2)+(1+2+3)+(1+2+3+4)+....(1+2+...+n)

可以列出求和公式:Sn=∑(i=1~n) (i+1)*i/2=1/2*[(1+2+.....n)+(1^2+2^2+.......n^2)]
最后用等比数列球和公式和平方求和公式得出语句@的频度为:(n+2)*(n+1)*n/6

【答案转自SGetEternal】
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式