网站大量收购独家精品文档,联系QQ:2885784924

Analyzing algorithms using big.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Analyzing algorithms using big

Analyzing algorithms using big-O, omega, theta First, we analyze some easy algorithms. Most of them have the same running time for all inputs of length n. Example 1 char A[100] for i = 1..100 print A[i] Running time: 100*c = Theta(1) (why?) O(1), Omega(1) = Theta(1) Example 2 char A[n] for i = 1..n print A[i] Running time: n*c O(n), Omega(n) = Theta(n) Example 3 int A[n] for i = 1..n binarySearch(A, i) Remember: binarySearch is O(lg n). O(n lg n) Example 4 char A[n] for i = 1..n for j = 1..n print A[i] O(n^2), Omega(n^2) = Theta(n^2) Example 5 char A[n] char A[n] for i = 1..n = for i = n/2..n for j = 1..i for j = 1..n/2 print A[j] print A[j] Big-O: i is always = n, so j always iterates up to at most n, so this is less work than n*n, which is O(n^2). Big-Omega: Useful trick: consider the iterations of the first loop for which i = n/2. In these iterations, the second loop iterates from j=1 to at least j=n/2. Therefore, the time to perform just these iterations is at least n/2*n/2 = (1/4) n^2, which is Omega(n^2). The time to perform ALL iterations is even more than this so, of course, the whole algorithm must take Omega(n^2) time. char A[n] char A[n] for i = 1..n = for i = n/2..n for j = 1..i for j = n/4..n/2 for k = 1..j for k = 1..n/4 for l = 1..7 for l = 1..7 print A[k] print A[k]

文档评论(0)

didala + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档