`

【绪论】算法为什么重要?

 
阅读更多
最近开始了考研专业课的复习,由于一直以来对数据结构和算法的喜爱,所以在考研复习中希望结合考研复习和之前学习《算法导论》和MIT开放课程学到的知识和自己的一些编程经验写写博客,以达到巩固知识和学习交流的目的。这篇文章就当是绪论吧!
本人也还在象牙塔下学习,实际项目参与的很不多,所以侃侃而谈这个问题脱离现实也有些不切实际,没有说服力。

算法为什么重要?李开复有一篇文章——《算法的力量》(点击打开链接)。《算法导论》的第一张中列举了算法能够解决的问题(本人翻译自英文版,水平有限,^_^):
(1)人类基因组计划的目的之一是识别人类DNA中所有的10万种基因, 确定构成人类DNA的30亿种化学碱基对的顺序,把这些信息存储到数据库中,并开发程序用来做数据分析。这些步骤的每一步都需要尖端的算法支持,来让科学家合理有效地利用资源的同时成功完成任务。节约的不仅是时间,还有人力和机器,还有金钱。
(2)因特网使全世界各地的人可以迅速连接到网络并得到海量的信息。为了实现这个目的,聪明的算法可以用来管理控制如此海量的数据。包括如何选择数据传输的最佳路径,如何使用搜索引擎迅速找到特定信息在网络中存储的位置等等。
(3)电子商务使商品和服务可以虚拟地形式进行协商和交换。而如何保证如信用卡号,密码和银行的声明等信息不被窃取保证隐私非常重要,尤其是再电子商务快速发展的今天。公钥加密算法和数字签名是基于数论和数字算法的核心技术。
(4)在生产及其他商业环境中,如何合理地最大化收益地分配稀缺资源非常重要。在这些情境中,我们可以使用线性规划或动态规划解决问题。
......
如今,云计算的到来丝毫没有降低算法的重要性,现今服务器上存储了PB级的数据,如何安全地稳定地有效地存储、查询、管理数据是各大公司的数据中心首要关心的问题。而小到手中的IPhone,Android手机,华丽的UI和犀利地操作,如果没有高效、快速的算法的支持,冗长的响应时间,动辄的死机将会使它成为噩梦。
前段时间浙江大学ACM/ICPC夺冠的新闻出来,也引起了不小的关注和讨论。有许多人在质疑这些冠军成员整天搞那些玩意儿真正却写不出个成品的XXX系统出来。我想,一,你不认识冠军成员,你如何知道人家不能写出这些XXX系统(不是OS啊)。二,人家已经证明了人家的学习能力,分析问题、解决问题的能力,和毅力决心,就算人家现在不会写个成品出来,给他们一个月,甚至一周的时间,我相信,写出一个差不多的XXX系统并非天大的难事。而潜心学习ACM夺取ICPC冠军对于许多人来说可能不是天大也是很大的难事了吧。
但目前,许多培训学校出来的JAVA、.NET程序员,对编程语言、云云的框架、设计模式、快速开发工具、各种库很是了解,却对计算机的基础理论知识缺乏足够的理解认识。当然,如今强大的库屏蔽了许多数据结构和算法,许多时候只需了解API就够了。但当遇到更大、要求更高的项目时,可能就会遇到技术瓶颈。而不可替代性是你保持竞争力的必要条件,JAVA、.NET程序员多了去了,谁能解决公司的问题,谁不被淘汰的机率就大。毕竟,上层的建筑是建筑在底层的基础之上的,而越往下挖,竞争的人越少,你的不可替代性就越强。有些人自上而下学习,从应用中捕捉问题,深入细节,探索内部实现,有些人自底向上,刨根问底。重要的是保持一颗求知若饥、时刻学习、积极向上的心态,无论是培训班出身,还是科班出身,都能找到自己的用武之地。跑题了跑题了,刹住。
总之,算法总是在最前沿。

下一篇的主题是算法分析,敬请关注。



分享到:
评论

相关推荐

    算法绪论及概念

    算法的基本概念 算法及其重要特性

    算法设计与实现-绪论与算法效率分析

    【算法设计与实现-绪论与算法效率分析】 在计算机科学中,算法是解决问题的关键,它们是计算的灵魂,触及到科学、商业和技术的各个领域。算法设计与分析是一门核心课程,旨在帮助学习者理解如何有效地解决问题并...

    01-课程绪论-算法的表示.pptx

    在"01-课程绪论-算法的表示"中,我们主要探讨了算法的由来、定义、性质以及多种表示方法,包括自然语言、编程语言和伪代码。 首先,算法的由来可以追溯到古代的算术和几何问题解决策略。随着时间的发展,算法的概念...

    数据结构笔记 绪论+算法.docx

    《数据结构笔记 绪论+算法》是对B站王卓教授数据结构课程的整理,结合了PPT和教材内容,适合考研复习使用。笔记中包含了数据结构的基础概念和算法的相关知识。 1. 数据和数据元素: 数据是描述现实世界事物的符号,...

    算法分析与设计绪论PPT学习教案.pptx

    总结来说,《算法分析与设计绪论》学习教案为我们构建了一个全面的算法知识框架。通过系统学习,我们不仅能掌握设计高效算法的技能,还能深入理解算法的性能极限,为解决实际问题奠定坚实的理论基础。随着计算技术的...

    四川大学计算机学院游洪跃老师数据结构与算法分析课程的平时作业习题1-绪论.rar

    1. **绪论**:这是任何课程的起点,通常涵盖数据结构和算法分析的基本概念。在数据结构中,我们将学习线性结构(如数组、链表)、树形结构(如二叉树、堆)、图形结构以及散列结构等。而算法分析则关注时间复杂度和...

    数据结构文件,数据结构和算法绪论,时间复杂度和空间复杂度

    数据结构和算法的绪论部分,通常会介绍数据结构和算法的基本概念,以及它们在计算机科学中的重要性。绪论还会对后续内容做铺垫,如线性结构、树形结构、图结构等常见数据结构的基本知识,以及排序和搜索等基础算法。...

    遗传算法和粒子群算法的Python实现

    遗传算法和粒子群算法都是智能算法领域内重要的搜索策略,它们在解决优化问题方面展现出独特的优点。通过对这两种算法的研究,不仅可以深入了解其内在机制,还能根据不同应用场景的特点选择合适的算法来解决问题。...

    最大网络流 增广路算法

    最大网络流问题是一个在图论和运筹学中非常重要的概念,主要应用于资源分配...了解并掌握增广路算法对于理解和解决这类问题至关重要。通过熟练运用这些算法,我们可以有效地提高网络的效率和性能,实现资源的最优分配。

    中国科技大学 算法设计 概率算法课件

    在大整数素性检验中,概率算法能够在可接受的错误率下提供解决方案,这对于加密技术尤为重要。 概率算法具有不可再现性和分析困难两大特点。由于随机性,相同输入可能导致不同结果,这在分析算法性能时增加了难度。...

    算法与数据结构:1-绪论.pdf

    在本文档“算法与数据结构:1-绪论.pdf”中,作者深入浅出地介绍了这两个关键概念。 首先,我们来看数据结构的重要性。数据结构与算法的关系被瑞士计算机科学家Niklaus Wirth形象地比喻为建筑设计与施工方案。学习...

    数据结构绪论课件(与“算法”有关文档共29张).pptx

    在数据结构的绪论课件中,通过29张幻灯片的详细讲解,为我们打下了学习计算机科学中这一重要分支的基础。 首先,课件介绍了数据结构的基本概念,这是整个课程的基础。在这个部分,我们学习了数据、数据元素、数据项...

    算法设计与分析王红梅绪论PPT学习教案.pptx

    首先,教案阐述了为什么要学习算法,强调了算法在解决问题中的核心作用和其在计算机科学中的重要地位。接着,通过介绍算法的重要特性,如确定性、有限性、输入、输出和有效性,让学生对算法有了初步的认识。在算法...

    算法设计与分析基础(第3版) 原版

    1.1什么是算法 习题1.1 1.2算法问题求解基础 1.2.1理解问题 1.2.2了解计算设备的性能 1.2.3在精确解法和近似解法之间做出选择 1.2.4算法的设计技术 1.2.5确定适当的数据结构 1.2.6算法的描述 1.2.7算法的正确性证明 ...

    数据与算法:1绪论2-数学模型.pdf

    本课程“数据与算法:1绪论2-数学模型.pdf”似乎是一份教学讲义,主要探讨了科学研究的一般方法,包括数据、数学模型以及算法的设计与分析。 科学研究通常始于观察和认识,接着形成猜想,然后通过数学模型来描述和...

    数据与算法课件:1 绪论.pdf

    课程说明强调了数据与算法的重要性,不仅作为必修的核心课程,而且对于后续的学习和职业发展至关重要。它涵盖了诸如定点数、浮点数的数值算法,以及表、串、树、图等非数值数据结构和相关的非数值算法,如查找和排序...

    遗传算法原理及应用 周明 孙树栋 编著

    书籍内容涵盖了遗传算法的基本理论和应用实例,其中绪论部分简要介绍了遗传算法的生物学基础,包括其生物背景和历史发展。在介绍了遗传算法的基本概念后,书中详细描述了基本遗传算法的操作过程,包括初始化种群、...

Global site tag (gtag.js) - Google Analytics