首页 > 代码库 > 算法第四版学习——Coursera&DrJava使用方法

算法第四版学习——Coursera&DrJava使用方法

引言

前段时间失业了,找工作的时候最深的两点体会是:

1、虽然做过大项目,做过很多复杂业务功能,涉及过很多知识领域。但是都很难表达清楚。

2、笔试遇到很多算法题,做得都比较头疼(糟糕),很多都直接影响了面试结果。

第一点我明白是需要不断总结和积累的,第二点勾起了我对算法学习的兴趣。大学学算法的时候,脱离实践,只谈时间、空间复杂度和实现难度,学完了就忘了,那样枯燥的算法我肯定不想再碰一遍。

偶然看到了Coursera的算法导论课程,遇到了大牛老师Robert Sedgewick,他的视频在网上下下来看了,虽然没有中文字幕,但看起来非常易懂(比大学老师说中文都容易懂。。。)

在写这篇文章的时候已经大约花了一个月时间,学到了字符串处理。算法第一部分(前三章)的Coursera题目已经在网上做完了,应该说例题也是非常经典。如果广大苦手算法的同学可以考虑去看看,真心不错。

 

这里简单介绍下Algorithm这门课的习题方式和做习题可能遇到的问题,具体习题解答在之后的博客更新:

1、语言用JAVA,但是基本上C#上手很容易,我本人以前用过JAVA,现在主要用C#,基本感觉不到区别。

2、作业上传zip包,只需包含要求的java类文件即可,上传无次数限制,上传后会自动编译测试,测试结果会过几分钟显示。测试结果基本不会很难懂,这个之后我会举例的。

3、官方推荐的开发环境是DrJava,虽然我用的是这个,但不是很推荐,因为默认版本好像是不能设置断点的。调试很麻烦,对新手来说有点难用,我还是推荐用eclipse,但我会介绍怎么用DrJava。

4、每个作业有SpecificationChecklist,前者是题目正文,后者是提示和常见问题,做题目第一个就足够了,如果看不懂题目、做不来或者过不了测试,可以求助第二个。

5、官方提供的algs4.jar import包类似C#中的include,相关的源码和接口文档在Specification和Checklist都有,可以查看,每个项目都要用到,其它的JAVA数据结构我也不知道,所以我也没有引用。

6、实在苦手做不来的童鞋也可以去Coursera论坛上求助,尽量不要太丢人就行。。。

 

关于DrJava

第一步、下载安装就不说了。打开以后新建项目,和VS里一样,不然无法import jar包。

技术分享

第二步、选择编译路径引入外部类,最重要的是要把algs4.jar文件的路径添加到Extra Classpath,这点搞了我好久。不然你代码里不能import。

技术分享

第三步、写Class,一个Class一个文件

技术分享

第四步、编译执行,先编译成中间文件,我理解和IL类似;只要有main函数,基本上都可以按以下方式执行,注意大小写敏感。

技术分享

技术分享

高级功能:单元测试JUNIT

以前比较熟悉NUNIT,JUNIT的话差不多,但是DrJava支持的断言异常少,建议还是不要用了。。基本上手工测测也够了

技术分享

技术分享

技术分享

技术分享

 

算法第四版学习——Coursera&DrJava使用方法