永发信息网

如何学习算法?本人一大三学生,非计算机专业。想自学下计算机算法,哪位大神能给指条明路?

答案:5  悬赏:40  手机版
解决时间 2021-04-03 18:01
  • 提问者网友:捧腹剧
  • 2021-04-03 07:03
如何学习算法?本人一大三学生,非计算机专业。想自学下计算机算法,哪位大神能给指条明路?
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-04-03 08:17
不知道你想要什么样的满意答案,大家只能给你思路,不可能给你书单。

我觉得,语言是初期的,而算法不是
所以第一件事应该是学好一种语言
既然你已经学了java,已经能够解决很多问题了,比如在学java的时候一定会碰到些排序算法,以及类似汉诺塔一类有趣的算法——更重要的是你得实际的试试这些小程序

然后学好数据结构,如果想理解和应用[图]的算法,像队列、栈、树都得滚瓜烂熟吧?(树相关的算法也不少)
我不知道java实现的数据结构哪本书比较好,但是数据结构的书应该也不会相差太多吧,这个科目的写作已经很成熟了,你应该自己能找到。CSDN也有很多高手写类似博文。
要是真学好了数据结构(不跳过任何难的章节,对每段代码都亲身实践、烂熟),你掌握的算法就很了不得了-说实话计算机专业的人又有几人能做到这点...

关于《算法导论》(可能是让你觉得“感觉学了半天没有真正的学到知识”的其中之一),学数据结构的时候可以一块儿看 - 网易有公开课呢,连老师都有了。但重要的是多多把算法敲出来...

另外不得不说,ACM的题库可以增加学习的乐趣 ~ 最好买那些给出详解的书

计算机图形学里有很多算法-多数计算机图形学的书都是用c++的..
《计算机图形学》有国内老师写的也有国外的:国内的正规教材倾向于走马观花,没什么重点只是覆盖知识(我是在说清华大学出版社的几本);国外经典的书大多是大部头,动辄600页里面还有大量数学分析。前者适合自学去了解相关领域的知识(你还能在网上找到相关的题和答案呢..)。后者不太容易懂,太数学了..
个人觉得如果学算法是为了研究、创造更好的算法,比如你下定了决心去编比Maya的某海浪功能更好的插件,那一定要好好读这些经典大部头。但如果是为了用,那就不必要。
完成上一步,起码对自己专业更了解了。说不定过程中你找到了特别感兴趣的方向-比如分形,比如用openGL或webGL做些小东西,比如你想要研究粒子,想研究物理碰撞,图形实时交互...有很多书就是专题讲这些的,也有很多网站、爱好者的圈子,你知道该如何提升。追问你说的真心好啊。我还能在问几个问题吗?追答惭愧,我只是一个动嘴皮子而没有真功夫的人
全部回答
  • 1楼网友:往事隔山水
  • 2021-04-03 11:50
建议你多看些数据结构的书,慢慢来,看懂看明白,不要太过心急!
  • 2楼网友:低音帝王
  • 2021-04-03 11:01
里面的数学推理证明基本看不太懂??就算是计算机专业调度都不敢说能看懂数学证明!上课老师都是不讲数学证明过程,直接引用结果的。
  • 3楼网友:酒者煙囻
  • 2021-04-03 10:22
找一本基础的书看吧,开始的时候切记贪多急功,一本基础的书,上手容易 ,并且可以帮你在基础层面查缺补漏
知识 要学为己用,不是草草的读了几本书就转变成为自己的知识了的
如果你决心要学这个,就一边学新知识,一边补习吧
至于书嘛,,每个人的逻辑不一样,要找一本比较合适自己逻辑的书看才比较省力也开心;每个人的视觉感受一不一样,看书就看排版结构什么的让自己看起来舒服的书——简单说就是,去书店窝着,然后去发现一本适合你的书就是了
----------------------------------------------------------------------
有逻辑有思路就好,如果楼主是专门研究算法推算演变的,那应该先去学习学习数学吧,,

数学没有一定的基础,学这些肯定会有些晕
  • 4楼网友:北城痞子
  • 2021-04-03 09:38
你说你是雄心勃勃的,不妨到了一点点。因为太懒惰的原因是多方面的,它可能是对自己对周围环境的影响,但如何才能有抱负的跟风吗?找准自己前进的方向,好好学习。既然你说的大一和大二关于你的基础是非常严重的,因为一些不舒适的享受的时刻,迷失了自己。希望你积极了一点。上帝保佑你!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯