每天都在进步

73ic平台基于云端开发,每周迭代更新,你用的每天都是新的

贪心算法与程序员的事前处理机制

发布时间:2013-11-19 浏览次数: 分享网址

有三个视频,分别为:5分钟、10分钟、15分钟,我们现在要将他们合并成一段视频,每次只能合并两个,哪种方法最快?

方法一:510合并占时15分钟,得出的1515合并占时30分钟,总共占时为:15+30=45

方法二:515合并占时20分钟,得出的2010合并占时30分钟,总共占时为:20+30=50

用图表示如下:

方法一(共用时15+30=45

 

 

方法二:(共用时20+30=50

 

其实即使视频的数目再多,其算法也可以循此原理,即:每次合并最短的视频数,得到的一定是用时最短的解决方案。

这种算法,在数学中被称为贪心算法

 

贪心算法的应用是广泛的,其涉及最优字典序编码问题、动态规划问题、图像压缩等,1952年德国科学家huffman(哈夫曼)将其发表,因而被称为Huffman算法,而由于这类算法分析中,需要有层叠复杂的树状,故被称为哈夫曼树或多叉哈夫曼树。Huffman算法被业界广泛称为效率最高的算法.

 

当然,本文不重点讨论算法,而是讨论程序员的开发思想。

 

一个网站开发,往往需要涉及的工作很多,其中包括:

  • 栏目设计

  • LOGO设计

  • 界面设计

  • CSSHTML设计

  • 程序编码

  • 内容添加

  • 推广

 

而现实中,往往会有这样的情况:

某客户言论:我只要能推广好,网站一年做一个都可以,因为做网站太容易了,百度推广代理商说送我免费网站的。

某程序员思想:我是做程序的,网站内容添加这种简单的事不需要我做,普通员工添加就可以了,网站程序好就是一切。

 

换另一个领域,在CMS编程开发中(当前所有的网站都会基于CMS系统来进行开发,就如同开源硬件、OS系统开发,都拥有一个基础的开发底层),往往也涉及到:

  • 栏目设计

  • 风格设计

  • 前台表单设计

  • 广告位置规划与代码设计

  • 频道区隔设计

  • 图象优化设计

  • 数据库优化

  • SEO关键字优化

  • 栏目URL路径优化

  • 社会化按钮优化

往往开发者设计一个网站的时候,只关注到模板界面,而忽略了栏目架构以及数据库优化,这就涉及到Zoomla!逐浪CMS首席架构师汪照发先生的一个观点,即到底是要建钢构还是只画石灰线。

“如同盖房子,往往先打基础。打基础前,大师傅会用右灰画一个基础线,画好了线,工人就好顺着线的痕迹开挖,由此开启万丈高楼平地起。然而现代化的工艺不再采用传统的开挖,直接钢构与预筑板建设。……而如同Zoomla!逐浪CMSdotNET产品定位,是做网站的钢构框架和技术之核,用户不需要去捉摸纯底层知识,却又能依托庞大的架构和其后台的云技术管道,不断的接入新的服务、开发新的用户功能、进行深层的数据挖掘,显然拥有更加优秀的扩展性。”(原文http://www.admin5.com/article/20131107/529441.shtml

因而在华夏互联的网站开如,我们有一系列的规范来要求同事做出的作品具备一定的含金量,比如:

1、  所有网站必须从第一行代码写起,哪怕两个项目的重合度是80%或更高,因为不同的写法或重复的写作会提高质量并优化代码。

2、  如果你是一个优秀的网站设计师,那么一定必须是一个优秀的网站编辑,否则根本不称为网站设计师。

3、  思想没有思想的设计是毫无价值的,如果你没读懂客户的项目思想和运营思路,你一定做不好这个项目。

4、  建模到位每一个栏目,不仅是设计好,同时要添加好相应的内容进行完整的模拟测试,从而保证不会有问题。

5、  ……

因为我们深知自己的目标是要做中国互联网最优秀的建筑师。

 

结束语:网站开发是一门“显学”,但“显学的背后是博学与好学,而不是以擅长百度竞价作为SEO技术、也不是连一点审美观都不掌握就学会技术、更是需要良好的项目管理思想、工作方法、数学算法以及扎实的基础工作。

 

 

*注:本文部分理论源自数学爱好者顾森先生分享

 


打印保存责任编辑:本站编辑 发表评论>>
上一篇文章: 下一篇文章: