时间复杂度例题.docxVIP

  • 11
  • 0
  • 约1.17千字
  • 约 2页
  • 2023-12-01 发布于上海
  • 举报
1、设 n 为正整数,试确定下列各程序段中前置以记号@的语句的频度。 评析:频度 ? 时间复杂度 注意:(1)、(2)、(3)三个程序段中任何两段都不等效(即 k 和 i 的终值不相同) (1 (1) i=1; k=0; while (i=n-1){ @ k+=10*i; i++; } 解:k+=10*i 的意思是 k=k+10*i 时间复杂度是 O(n); @ k+=10*i 的频度准确值为n-1 (2)i=1; k=0; do{ @ k+=10*i; i++; } while(i=n-1); 解:时间复杂度是 O(n); @ k+=10*i 的频度准确值为n。 (3 (3)i=1; k=0; while (i=n-1){ i++; @ k+=10*i; } 解:时间复杂度是 O(n); @ k+=10*i 的频度准确值为n-1。 (4) k=0; for (i=1; i=n; i++){ for (j=i;j=n; j++) @ k++; } 解:这是双重循环,应当是O(n2); @ k++的频度准确值为: n+n-1+n-2+……+3+2+1=n(n+1)/2 ◆(5 ◆(5)for (i=1; i=n; i++){ for (j=1; j=i; j++){ for (k=1; k=j; k++) @ x+=delta; }} 解:这是三重循环,应当是O(n3); 但@ x+

文档评论(0)

1亿VIP精品文档

相关文档