楼主: MaxAm
跳转到指定楼层
上一主题 下一主题
收起左侧

算法自学~各种无责任点评

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
貌似我好久没有过来地里发帖子了~ 现在是知乎,Quora的脑残粉,大部分零碎时间都用到那边去了....

我不是CS科班出身,本科和研究生都没有学过Algorithm, 觉得自己欠缺这一块,索性就自学了起来,下面是我的学习感受,大神请绕路。

0. 算法的作用
    日常使用不会见到非常显示的作用,因为常用数据结构和常用算法都在各大主流语言的lib里面实现了,如果不懂细节也可以直接调用=。=。 它的作用更多体现在解决问题的思路上面,很多时候你熟悉算法后,遇到同样的问题,你脑中会闪现出某些灵感,是不是可以用什么算法,如果用了某些算法是不是可以再进行改进之类的。

1. 算法与数据结构的关系
    学习之前,我一直不清楚二者的区别,很多教材要么单名算法,要么单名数据结构。二者是左右手的关系,很多特殊的算法需要专门的数据结构来实现,数据结构也是为了更高效的实现算法。明白了这一点
在选择课本,公开课的时候,你选算法也可以,数据结构也可以。这两者在教授的过程中,基本都能覆盖对方的内容。

2. 课本选择
    a. 计算机科学与艺术,这一套书不推荐,性价比低,适合收藏,不适合拿来学习和迅速上手
    b. CLRS 这本书很好,但是耗费时间巨大,书中都是伪代码,要跟完MIT的公开课,完成所有Assignment, 然后手工实现所有基础算法,这样一圈下来,每周投入时间10~20左右。书中很多篇幅是讲解算法的证明,如果没有耐心和一定的数学基础,是个巨大的考验。
    c. Algorithm 4th. 这本书是Princeton 算法的教材,作者是高德纳的弟子,你能在书中多处见到他对老师的崇拜 =。=,java 代码实现所有算法,提供相应的算法应用demo,此书的风格和CLRS 差别巨大,重在讲解算法的应用,相关的缺陷和可能的优化。每章会给出算法在研究,当下软件产品中的应用,我个人很喜欢这样的风格。
    d. 公开课选择: coursesea 上面提供了 c选项 的公开课,如果有兴趣可以去追。 standford CS106B 也是讲解数据结构的一门课,覆盖了基本的算法和数据结构,足够应付日常使用和将来面试,也是一个很好的option.  CTI 594 这个是 UPenn的一门课,覆盖了算法,数据结构,多线程等内容,可以作为辅助学习。

3. 学习的方法
   a. 跟公开课是最好的选择,有视频和没有视频效率差别在5-6以上,希望大家好好斟酌
   b. 理解和背诵相结合。现有的流行算法基本都已经成形,所以背诵和理解能迅速提高算法应用能力
   c. 勤动手,多写,多写,多写,多写,多写。 这是最重要的一步,不会写,再怎么理解都是白搭。实现基本算法,数据结构,完成作业。跟完一个课程下来,你的知识体系基本都搭建了


over~  欢迎拍砖

评分

参与人数 5大米 +37 收起 理由
jwzxgo + 3 很有用的信息!
Irvin + 3 很好,偶正在开始自学,太棒了,楼主,Mua
规格严格理性帝 + 3 很详细
命苦啊 + 3 感谢分享!
xiayuan0623 + 25 谢谢你的介绍!

查看全部评分


上一篇:2013 CareerCup 刷题将于2月18日正式开始
下一篇:Cracking the Coding Interview第五版所有题目
🔗
一剑终情 2013-1-25 04:03:11 | 只看该作者
全局:
应该说算法课和数据结构课有交集但侧重点还是不同的。个人觉得学习的时候两者还是不能替换
回复

使用道具 举报

🔗
 楼主| MaxAm 2013-1-25 06:59:15 | 只看该作者
全局:
一剑终情 发表于 2013-1-25 04:03
应该说算法课和数据结构课有交集但侧重点还是不同的。个人觉得学习的时候两者还是不能替换

嗯,我只是初入这个门道,之前一直纠结该先学哪个,后来直接就直接选了ALGS然后学了,现在快收尾了
回复

使用道具 举报

🔗
playboylc 2013-1-25 07:42:38 | 只看该作者
全局:
说说我的理解。
算法和数据结构并没有直接联系。

算法是抽象层面的,抽象到数学层面的。

数据结构是具体的用编程语言来对某样东西的实现。

评分

参与人数 1大米 +10 收起 理由
woaibai + 10 你说得对

查看全部评分

回复

使用道具 举报

🔗
starcroce 2013-1-27 10:58:22 | 只看该作者
全局:
这学期上clrs,深深体会到了自己数学功底的薄弱。。。
回复

使用道具 举报

🔗
koppie644 2013-1-30 10:57:25 | 只看该作者
全局:
普林这本书相对比较浅显,但是讲得非常清楚,记得一共五个部分,我突击了234,可以很快看完
回复

使用道具 举报

🔗
xiatian122 2013-1-30 12:23:50 | 只看该作者
全局:
我觉得学算法最好的办法还是搞ACM,刷OJ,或是做有关方面应用的试验,这个是效果最好最快的提升方法
回复

使用道具 举报

🔗
 楼主| MaxAm 2013-1-31 00:42:35 | 只看该作者
全局:
koppie644 发表于 2013-1-30 10:57
普林这本书相对比较浅显,但是讲得非常清楚,记得一共五个部分,我突击了234,可以很快看完

高手!

我一边复习,一边看,现在才看到5.3
回复

使用道具 举报

🔗
robinyqiu 2013-2-3 22:16:13 | 只看该作者
全局:
楼主你好。。。Stanford的CS106B用的教材是The art and science of C的升级C++版,网上找不到。。。请问你怎么解决这个问题的?
回复

使用道具 举报

全局:
不错,不过可能每个人的情况不太一样, 多练 总归是 对的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表