老生常谈:算法与数据结构究竟有多大用

zhenming_liu 2007-11-26 03:01:25
加精
不好意思又提出了这样一个可以有口水战的问题。很多人的答案是“有用”,大部分的理由是不懂算法就会限制“思维”。我觉得这种答案有点牵强。软件产业现在也是有蛮细的分工的。一个人精力多花在了算法之上,那他就少了精力放在更高层面的设计问题上。就好像读设计的大部分是不会碰到土木用的力学。我们能不能说算法就是土木工程师的活,而酸法以外的架构和设计则是设计师的活呢?对设计师而言,懂力学自然是好,但是即使不怎么懂,也会无伤大雅。

所以我觉得学了算法当然有用,但是学算法花的时间会不会不值得。当然我说的学算法是在看完introduction to algorithm大半本以后的学习---intro to algo是蛮基本的, 但是像The arts of computer programming或者concrete mathematics就有点过头了。

即便在现实生活中,很多情况下我们都不会碰到有难度的算法。如果碰到有难度的算法,整个开发团队只要有一个人有本事解决,问题就不算是问题了。

所以我蛮想知道这两件事的,
1. 在这个论坛的,究竟有多少人是每天工作要碰到算法的?具体而言是哪些算法(离散的,信号处理的或者图形的?)如果你需要设计算法,有多少时候是找开源代码能解决问题的?有多少时候要自己真正设计的?
2. 究竟有多少人读过"the art of computer programming"?我自己算是大概翻过了这本书,很多章节我都从其他地方看过类似的材料。但是我不觉得直接看teh arts of computer programming是学习那些课题的高效方式。





...全文
18897 564 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
564 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2011-11-28
  • 打赏
  • 举报
回复
mark.正在学习算法
nikun_ 2011-11-03
  • 打赏
  • 举报
回复
不要老想什么有用没用,你感兴趣就去学,不感兴趣,再有用也学不好
fcjxxl 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 424 楼 junhaoyuan 的回复:]
我看到了第100楼,没有继续看下去。单从前面的一些内容来看。LZ的算法理解力要强过前100楼的至少98个人。
我想说的是,大家一直在回答的问题是“算法有没有用?”,而楼主的问题是“你们在平时工作中有没有用到过算法?”。
若理解不足,还望见谅。
[/Quote]
+1
self001 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 a0002 的回复:]
没有数据结构,数据放哪?

没有算法,怎么计算?

没有数据、不能计算,要CPU干吗?

不要CPU,那还叫计算机吗?

呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵
[/Quote]说的真神奇
紫色动力 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 561 楼 a1b2c3zhang 的回复:]

我做软件开发十年,可以很负责任地告诉你,就两个字——“没用”!
等你用到了再学也可以(当然不排除以后由于什么情况你会用到)。
[/Quote]
我觉得还是有用的,至少程序质量可以更上一个台阶
Greyson_Xu 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 79 楼 llhh 的回复:]
我屡屡碰到连经典算法也解决不了的问题,真痛苦啊。学了都不一定能解决实际问题,何况不学呢??
不懂算法的计算机专业学生=没学过数学的普通人,我不敢聘用。
[/Quote]
呵呵,一个精通算法,熟练掌握.net 开发(通讯方面,数据库存储方面,数字图像处理方面) 和c语言的程序员,以你的公司背景,你愿意开多少月薪呢
测试也要努力 2011-10-18
  • 打赏
  • 举报
回复
有兴趣的可以研究研究,我觉得,确实是个好东西
a1b2c3zhang 2011-10-18
  • 打赏
  • 举报
回复
我做软件开发十年,可以很负责任地告诉你,就两个字——“没用”!
等你用到了再学也可以(当然不排除以后由于什么情况你会用到)。
LipsChan 2011-10-08
  • 打赏
  • 举报
回复
深层的技术离不开算法。。如果想安安稳稳混混日子不用算法都足够了
w835369950 2011-10-07
  • 打赏
  • 举报
回复
即便一个最简单的hello world程序,你的编程思路也可以当成是算法吧.所以,你说呢
sacheo 2011-10-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhenming_liu 的回复:]
不好意思又提出了这样一个可以有口水战的问题。很多人的答案是“有用”,大部分的理由是不懂算法就会限制“思维”。我觉得这种答案有点牵强。软件产业现在也是有蛮细的分工的。一个人精力多花在了算法之上,那他就少了精力放在更高层面的设计问题上。就好像读设计的大部分是不会碰到土木用的力学。我们能不能说算法就是土木工程师的活,而酸法以外的架构和设计则是设计师的活呢?对设计师而言,懂力学自然是好,但是即使不怎么懂,……
[/Quote]
正在研读intro to algo······
wangzhen11aaa 2011-10-01
  • 打赏
  • 举报
回复
[Quote=引用 522 楼 superdullwolf 的回复:]

招聘算法研究,兼职/实习/正式均可

ShopEX.CN是国内最大的电子商务供应商,也是一家近千人的大中型软件公司。

现招聘算法研究方向,本科或研究生2-4名,兼职/实习/正式均可。

要求:
1,有基本的算法思维和编程天赋,有ACM相关经验最佳。
2,对计算机图形、图像领域或者数学,统计学算法实现有兴趣,或理解能力强。

工作地点:
上海虹桥路333号,交大慧谷ITHu……
[/Quote]
人才和本科,研究生的关系
范围
人才 >= 本+研
wangzhen11aaa 2011-10-01
  • 打赏
  • 举报
回复
[Quote=引用 521 楼 jamofcode 的回复:]

有钱才是硬道理。。。。。。
[/Quote]
人才和本科,研究生的关系
范围
人才 >= 本+研
wangzhen11aaa 2011-10-01
  • 打赏
  • 举报
回复
呵呵,一开始在学校学习时也想过这个问题,为什么还有算法?有c,VC++,汇编怎么还有个这玩意?
但是,我在进一步内核学习时,才发现算法无处不在几乎,特别是在重大抉择时,比如堆的分配使用的是首次适应还是最佳适应,这就是算法。
还有硬盘读取的电梯算法,内存查找的红黑树,文件系统的B+树,一系列的链表,HASH表。学算法重要性可见一般。
要是你非说它没用,说明你还在编辑hello,world层次呢
莫恶 2011-09-28
  • 打赏
  • 举报
回复
新人,果断来mark一下~
karnonlm 2011-09-27
  • 打赏
  • 举报
回复
靠卖体力的低级程序员不需要用到算法,要用到算法的都是卖脑力的
CodeArhat 2011-09-26
  • 打赏
  • 举报
回复
写业务程序时(数据移来移去)、网站、界面,常常几年(或说从中你挣了几十万)
都遇不到需要算法的地方,很可能在那里DB已经帮你做好了大部分,最复杂不过结构体数组。

但想写点“智能”、“有趣”、“酷”、“辅助性”的程序,却往往立即碰上数据结构、算法、甚至需要去翻数学书,
比如:
领导想找出业务中“写错”的地址、
俺想把“相似”的MM图片归类(有N多G呢)、
写个会玩连连看的程序、
把几十M代码中的SQL从SqlServer风格改成Oracle版……
jkj9999 2011-09-23
  • 打赏
  • 举报
回复
不懂,帮顶
kissthefuture 2011-09-23
  • 打赏
  • 举报
回复
懂是要懂的, 否则写个程序逻辑自己就乱不清楚怎么实现
muckenbeger 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 50 楼 mathe 的回复:]
呵呵,得到英文版的了。发现第四章中一个关于孙子定理描述的错误:
A very special case of this theorem was stated by the Chinese mathematician
Sun TsU, who gave a rule called tai-yen (“great generalization”). The date of
his writing……
[/Quote]

我在看具体数学的时候也注意到这个了,但是如果一本书叫《孙子算经》,那么在引用的时候称作者为“孙子”也没有什么不对的不是吗。只能当做刚好重名处理了。
加载更多回复(544)

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧