免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 9005 | 回复: 37
打印 上一主题 下一主题

[算法] 我对算法的一点感触 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-31 18:41 |只看该作者 |倒序浏览
工作9年了,对算法有点感触,我来说说。

有次看电视,采访一个厨师里面的大师,他的招牌菜是鱼香肉丝。

这个菜,估计中国非常多的厨师都会做。

采访他时,他说,他炒菜时,要先看看这菜是给谁吃。

如果是上海人,他辣子少放点,多放点糖。

如果是四川人,他辣子和花椒会多放点。

如果是江西人,他多放辣子。

如果里面男人居多,他多放肉。

......

我个人认为,这个厨师大师,如果来写程序的话,他应该会在算法上花费很多功夫的。

另外,中国绝大多数的厨师,炒菜时,又有几个象他这样用心去琢磨吗?

其实,解决了生存问题后,任何程序员都可以用心去琢磨自己的程序,慢慢地在自己的开发中涉及到算法。

当然,那些还没解决生存问题的程序员们,能把老板交代的工作完成了,是第一重要的,算法离他们还太远。

这个就如同普通的一个士兵,在战场上,第一重要的是如何保护自己的性命,如果这点都做不到,那里能谈到杀敌,更不用说战法,战术,战略......

我运气比较很好,从2002年7月份到现在,我差不多一直和搜索引擎打交道,在这个领域里面,算法往往很重要。

举个例子,URL排重的问题。

spider抓取回来很多URL,如何发现这些URL是新找到的?还是已找到的?

估计很多程序员,解决这个问题会有下面类似步骤:

step 1:
使用数据库进行存储,建立库表结构,新找到一个URL,就把它扔到数据库中,如果已有了就不存储进去。

/****************************
*后来出现问题
*(1)URL有上亿个,数据库存储不了,数据库的存储和查询速度太慢。
*(2)a.asp?a=1&b=2和a.asp?b=2&a=1实际上同样一个URL。
****************************/

step 2:
建立URL参数序列化处理,把各个参数按照一定规则来处理。

比如说:把URL中参数按照ASCII码大小进行序列化,a.asp?b=2&a=1的全部转化为a.asp?a=1&b=2。

另外,使用STL中的MAP来进行存储,存储/查询时间快。

/****************************
*后来出现问题,URL过多后,MAP还是比较慢。
****************************/

step 3:
自己写hash,取代MAP,提高速度。

/****************************
*后来出现问题,单台服务器的内存,存储空间有限,继续改进hash算法,用多台服务器进行分步存储。
****************************/

step 4:
......

/****************************
*发现新的问题,继续改进........
****************************/



[ 本帖最后由 xtthnfr 于 2007-8-31 18:43 编辑 ]

评分

参与人数 1可用积分 +3 收起 理由
lenovo + 3 我很赞同

查看全部评分

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-08-31 18:47 |只看该作者
不错。从实践中出发,
更容易让人接受。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2007-08-31 19:35 |只看该作者
原帖由 xtthnfr 于 2007-8-31 18:41 发表
工作9年了,对算法有点感触,我来说说。

有次看电视,采访一个厨师里面的大师,他的招牌菜是鱼香肉丝。

这个菜,估计中国非常多的厨师都会做。

采访他时,他说,他炒菜时,要先看看这菜是给谁吃。

...

不要动不动就把算法抬那么高 :em11:

论坛徽章:
0
4 [报告]
发表于 2007-08-31 19:56 |只看该作者
曾经做过两年的ACM竞赛,依靠的只是算法,虽然现在工作中用到很深的算法的情况不多,但,有了那些基础后,理解别人的算法,已有的算法,是非常容易非常简单的事情。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
5 [报告]
发表于 2007-08-31 20:00 |只看该作者
原帖由 cugb_cat 于 2007-8-31 19:56 发表
曾经做过两年的ACM竞赛,依靠的只是算法,虽然现在工作中用到很深的算法的情况不多,但,有了那些基础后,理解别人的算法,已有的算法,是非常容易非常简单的事情。

这个估计还要看是什么算法以及理解到什么程度

论坛徽章:
0
6 [报告]
发表于 2007-08-31 20:02 |只看该作者
平时搞搞算法还是可以提高个人技术素养的

论坛徽章:
0
7 [报告]
发表于 2007-08-31 20:06 |只看该作者
原帖由 MMMIX 于 2007-8-31 20:00 发表

这个估计还要看是什么算法以及理解到什么程度

这个就不好说了  呵呵  要看修炼到什么程度了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
8 [报告]
发表于 2007-08-31 20:31 |只看该作者
原帖由 ypxing 于 2007-8-31 20:02 发表
平时搞搞算法还是可以提高个人技术素养的

对头,这样至少在需要选择的时候不会茫然无措

论坛徽章:
0
9 [报告]
发表于 2007-08-31 20:58 |只看该作者
楼主说得很有道理的。虽然我们平时享受惯了基础设施带来的便利,难免对算法忽视,但是我们的忽视并不表示它不重要,就像我们不用都去学土木工程,去亲自造高速公路,但并不表示那个就不重要。

论坛徽章:
0
10 [报告]
发表于 2007-08-31 21:07 |只看该作者

回复 #1 xtthnfr 的帖子

以后再遇到瓶颈,采用B+树算法构建索引文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP