算法练习(57): TwoSum分析(1.4.4)

本系列博客习题来自《算法(第四版)》,算是本人的读书笔记,如果有人在读这本书的,欢迎大家多多交流。为了方便讨论,本人新建了一个微信群(算法交流),想要加入的,请添加我的微信号:zhujinhui207407 谢谢。另外,本人的个人博客 http://www.kyson.cn 也在不停的更新中,欢迎一起讨论

算法(第4版)

知识点

  • TwoSum
  • 画图

题目

1.4.4 参照表 1.4.4 为 TwoSum 建立一张类似的表格。


1.4.4 Develop a table like the one on page 181 for TwoSum.

分析

参照中英文的翻译,看看,181页对应的图表是如图所示的图表


参照3-sum不难得出2-sum的代码如下:

public class TwoSum
  {
     public static int count(int[] a)
     {
        int N = a.length;
        int cnt = 0;
        for (int i = 0; i < N; i++)
            for(int j = i + 1; j < N; j++)
                if(a[i] + a[j] == 0)
                    cnt++;
        return cnt; 
    }
     public static void main(String[] args)
     {
        int[] a = In.readInts(args[0]);
        StdOut.println(count(a));
     }
}

因此画出如下语句执行频率图:


Anatomy of a program’s statement execution frequencies

对应的程序运行的时间分析表:

statement block time in seconds frequency total time
D t₀ x (depends on input) t₀x
C t₁ N²/2-N/2 t₁( N²/2-N/2 )
B t₂ N t₂N
A t₃ 1 t₃

广告

我的首款个人开发的APP壁纸宝贝上线了,欢迎大家下载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本系列博客习题来自《算法(第四版)》,算是本人的读书笔记,如果有人在读这本书的,欢迎大家多多交流。为了方便讨论,本...
    kyson老师阅读 5,205评论 0 50
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,295评论 25 709
  • 本系列博客习题来自《算法(第四版)》,算是本人的读书笔记,如果有人在读这本书的,欢迎大家多多交流。为了方便讨论,本...
    kyson老师阅读 4,671评论 0 49
  • 我的眼睛特别不好,我的鼻子也没那么好,我的牙齿好过但是现在也不好,请让我的耳朵好好的~
    好月圆阅读 1,306评论 0 0
  • 门外已是瓢泼大雨 我的心情是如此宁静 突然想起你 那夜无奈的泪滴 不是别离 更不是相遇 太久的笔迹描绘的都是另一个...
    大同手记阅读 2,934评论 6 50

友情链接更多精彩内容