学算法有用吗?刚学会 KMP 算法,是什么层次

2015-08-17 01:31:35 +08:00
 hxlx

不会是连入门都没有吧?

12423 次点击
所在节点    算法
65 条回复
tooweakchen
2015-08-17 10:36:18 +08:00
入门
zhujinliang
2015-08-17 11:27:33 +08:00
@laoyuan 最近经常看你的直播呢
henryon
2015-08-17 12:48:11 +08:00
恭喜你加入码农的行列。。
wph95
2015-08-17 12:53:54 +08:00
KMP...信息学竞赛提高组入门等级
zerh925
2015-08-17 14:01:09 +08:00
具体某种算法可能将来并不会用到
但是最大的帮助是训练我们的思维能力 将来遇到类似问题能举一反三
看到 KMP 我的第一反应是 kmplayer 因为我并不知道这个算法 我的工作中也不会用到
但是我不否认学过这个的人或多或少还在收益
但是也许我懂的算法也许他们不会
术业有专攻而已
但是某些大神 也许在造轮子时候因为知道 KMP 可以在它的基础上改造出新的东西
这才是懂算法的真正意义吧
大部分人和人的差距不是智力 而是努力程度和浮躁的心态
Changxu
2015-08-17 14:11:38 +08:00
KMP ?最多是 CS 本科大二的水平
saeba1030
2015-08-17 14:20:00 +08:00
能写进书本的算法都是然并卵的。有用的就是你知道有哪些算法,能干什么,这样在特定场合要解决问题时可以用来就用或者举一反三
zx120120
2015-08-17 14:41:22 +08:00
学习这些算法更多的是对思维的锻炼。
而上手实现这些算法,则可以锻炼你对边界情况的处理能力。
而且这些流传已久的算法大都是很美的,光是知道就会很令人高兴。

至于这些算法对做工程而言,大多是没什么用。
毕竟,做工程很多时候只是在机械得重复得写胶水代码罢了。

当你想要深入这么学科里的时候,写一些比胶水代码要高神的东西的时候(诸如浏览器,编译器,数据库),算法则是不可或缺的。
然而若是想在工程方面搞一搞的话,写点点胶水代码(诸如 HTML , JavaScript , SQL )便能有很大成就感,此时对于算法的需求并不是那么强烈,更多的是需要耐心和兴趣以及审美能力。

总的说算法就像人们口中说的数学,写点 HTML , JS ,买点菜,势必是用不到的。但是要想钻研更深的计算机科学,算法知识是必备的。

至于到底要不要学算法,完全取决于 LZ 想做什么。
个人建议,不要过早的跳进 网页程序员 的大坑当中,先试试学学看,试着去干掉各大公开课网站上比较“高深”的课程,或许会发现全新的世界。
liuchang0812
2015-08-17 15:11:05 +08:00
大一新生的水平
abcdabcd987
2015-08-17 15:24:35 +08:00
@Changxu
@liuchang0812
我觉得按照年级来评判完全没有意义呀,毕竟如果按照年级评判的话,高一高二的 OI 选手就应该掌握了呀
zhicheng
2015-08-17 15:27:30 +08:00
初级工程师认为写出可以工作的代码就结束了,高级工程师认为写出漂亮的代码就结束了,顶级工程师认为写出可以调试的代码才算结束。

自己看自己在哪个层次上。
wshcdr
2015-08-17 15:33:33 +08:00
@yyfearth 工作里面也能用到啊,谁说只能在面试里用啊
JointLock
2015-08-17 15:38:14 +08:00
自学算法的中小学生?可看清了,手上的这颗石头就是一颗未经雕琢的原石啊!
锻炼信息学竞赛的中小学生?可沉住气,手上的这颗石头是关键时刻可以拿来一战的武器。
高考后预习大学课程的高中毕业生?可别骄傲,虽然你已经走在大多数高考生同学们前面了。
大学暑假来预习算法课的大学生?可别浮躁,虽然你觉得大学什么课程内容都特么一坨翔...
大学暑假来准备面试题的准毕业生吗?可别慌,学到了就是学到了,万一面试用到了呢...
夏天躺尸时间却想自我提高的半路子出家的程序员?可别觉得为时已晚,该走的路就是要走!!

学习算法这是稳赚不赔的买卖,值当!
MrEggNoodle
2015-08-17 15:59:33 +08:00
@em70 喜欢你这句概括。
codingpp
2015-08-17 16:00:38 +08:00
无法学以致用,就没有什么卵用
dslwind
2015-08-17 16:05:43 +08:00
kmp 至今没看懂是什么层次?
Wangxf
2015-08-17 16:10:40 +08:00
面试的时候有用,大学的时候老师讲过,现在忘得差不多了
yyfearth
2015-08-17 16:16:48 +08:00
@zx120120 工程也有构架设计这样很有学问的东西 只有比较初级的才是堆砌重复代码
设计合理的架构 同时编写清晰可测试的代码难度 不会比学通这些算法简单

@wshcdr 除了 C/C++做核心 /底层开发 实在很难想到需要自己写 kmp 这样的算法
而且我记得现在已经有更好的算法来做这个事情了
不过理解这些算法的原理 并灵活使用还是非常值得的
liuchang0812
2015-08-17 17:26:30 +08:00
@abcdabcd987 以正常人为说
wezzard
2015-08-17 17:43:02 +08:00
看了下 KMP 的文章, 5 分鐘自己用 Swift 2 擼了一個,我是設計出身,樓主自己掂量掂量……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/213654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX