If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

什么是算法,为什么需要关注算法?

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.

视频字幕

什么是算法? 算法的一个定义是: 完成一项任务的一系列步骤 当你从家到学校 当你在做一个芝士三明治 当你在杂货店寻找一样商品时 你可能已经在使用算法了 在计算机科学中,算法指的是 让计算机程序完成一个任务的一系列步骤 算法使科学融入计算机科学 并且,找到一个优秀的算法并且知道什么时候去使用它 会让你写出更有趣和重要的程序 并且,找到一个优秀的算法并且知道什么时候去使用它 会让你写出更有趣和重要的程序 我们来一起看一下几个著名的算法 Google Hangouts是如何将实时视频 如此迅速地在互联网上传递的? 他们使用的是音频和视频压缩算法 谷歌地图是如何 为了让你去迪斯尼世界 而找到从德州达拉斯到佛罗里达奥兰多的路线? 他们使用的是寻路算法 皮克斯是如何基于一个虚拟房间的灯光 来给一个角色的3D模型来上色的? 他们使用的是渲染算法 NASA是如何选择怎样在国际空间站上 部署太阳能板的 还有何时重新调整他们的位置 他们使用的是优化和进程算法 这些算法 比我们日常生活中的算法比如做一个芝士三明治 要来的更加复杂 但是它们本质是相同的 都是完成一个任务的一系列步骤 如果你对现有算法有所了解 你可以通过使用正确的算法 来为你自己省下很多工夫 并且让你的程序运行得更快 比如说,你在写一个游戏 你要让玩家能够 和电脑对战 你可以想象一个象棋游戏 计算机科学家已经发明了 最小搜索算法 使得象棋程序永远不败 这个算法能够在数据树中搜索象棋可行的走法 如果你的游戏和象棋类似 那么你可能就可以借鉴 这个这些算法的技术 不然的话,你也可以通过了解这些算法的局限性 重新设计你的游戏 使它成为出色的电脑玩家 了解如何设计新算法也同样重要 以及如何分析它们的正确性和效率 在生物学中, 不断地有新算法被设计出来 为了达到像是设计抗病药物核心 分子结构的目的 为了达到像是设计抗病药物核心 分子结构的目的 在物理学上,算法能够模拟气候 和天气模式 在物理学上,算法能够模拟气候 和天气模式 还有其他算法,搜索并分析自动化太空望远镜 所收集的有关恒星和宇宙的最佳数据 还有其他算法,搜索并分析自动化太空望远镜 所收集的有关恒星和宇宙的最佳数据 还有其他算法,搜索并分析自动化太空望远镜 所收集的有关恒星和宇宙的最佳数据 所有的科学,甚至包括网站 例如可汗学院,会使用高效的算法 来分析海量数据 或从大量的可能中作出智能的决策 在你感兴趣的几乎所有领域中 新算法将利用强大的计算能力 来做人们迫切需要 和关注的事情 并不是所有的算法都是同等的 怎么才能算是一个好的算法? 两个最关键的标准是 首先,这个算法能解决一个问题 并且这个算法能高效地解决这个问题 大多数时候,我们需要一个 能给我们一个确信的答案的算法 而有时,我们实际使用的算法 并没能给出正确结果或者最佳结果 因为针对这些问题的 我们所知的最完美算法 因为针对这些问题的 我们所知的最完美算法 将花费非常非常长的时间 例如,假设我们需要一个程序 为一辆运送包裹的卡车 例如,假设我们需要一个程序 为一辆运送包裹的卡车 来设定一天的最高效的路线 路线的起始点都在仓库 这个程序将需要数周的时间来运行 以遍历所有的可能性 但其实我们也能够接受一个 能给我们一个还不错的路线的程序 我们需要的并不一定要是最优的路线 那么这个程序就可以在几秒钟内运行并给出结果 在一些情况下,好不错就够好了 如何衡量一个算法的效率? 我们可以测量它运行代码需要多长时间 但这只能评判它以 一个特定的程序语言 在一台特定的计算机上 以一个给定的输入的表现 作为替代,计算机科学家使用一种 所谓的渐进分析的技术 这个技术使得算法能够独立地被比较 而无视程序语言或者硬件 这样我们就可以得出结论说,没错, 有些算法的确比其他的更高效 现在,你可以在可汗学院学习算法和渐近分析 现在,你可以在可汗学院学习算法和渐近分析 多亏了两位达特茅斯(Dartmouth)学院的教授 多亏了两位达特茅斯(Dartmouth)学院的教授 Tom Cormen是世界上最流行的大学算法教科书 的第一作者 Tom Cormen是世界上最流行的大学算法教科书 的第一作者 同时也是Algorithms Unlocked的作者 同时也是Algorithms Unlocked的作者 Devin Balkcom设计了达特茅斯的CS导论课程 同时也研究机器人 他造出了世界上第一个折纸机器人 Tom和Devin会教你很多 APCS或CS 101中的算法 比如搜索算法,排序算法, 递归算法 和我个人最喜欢的图形算法 将会有大量的交互式可视化内容, 测验和编程挑战 来帮助你在这趟学习之旅上 更好地理解