[Powered by Google Translate] PATRICK SCHMID:虽然在你面前的电脑或 移动电话可能会出现在你的手是很聪明的, 现实情况是,你的电脑无非是 塑料,金属,和硅,可以按照位 指示非常好。 您已安装的所有应用程序,从您的 最喜欢的音乐播放到你的网络中的应用 浏览器,仅仅是遵循的程序 预定义的一组步骤。 当然,也有很多次,当你使 沿途的选择,如挑选歌曲播放或 访问某些网站,但每个程序只有一个 数量有限,它可以做的事情。 喜欢你的网络浏览器中执行各种复杂的应用程序 功能 - 显示网页,播放音乐和电影,等等。 然而,对于每一个这些子功能 - 说使所有的HTML,服务器 发送到该浏览器 - 可以以许多不同的方式来完成的。 上的指令集或算法,并取决于 被使用时,在实现所期望的结果的方式 可能是不同的。 因此,算法仅仅是一个指令集,您的所有 计算机程序,只是做一些事情,就像 当你烤蛋糕,你一步一步的按照配方。 比方说,我想我怎么去写一个算法 早晨上班的。 显然,每个人都有相同的开始 - 我在家里 - 并具有相同的结局 - 我在工作。 但也有许多不同的方法,我可以做到 同样的任务获得从家里去上班。 例如,让我们来谈谈算法 一个,这是步行。 好了第一个步骤是我走出前门,锁定它,我 步行三英里,然后我进入办公大楼。 算法2 - 我现在就打电话给这个骑自行车。 步骤一:我走了前门,我将其锁定。 我解开了我的自行车,把我的头盔上, 骑三英里。 我锁定了我的自行车,脱下我的头盔,并输入 办公楼。 算法三,是公交车,我走的前 门,再次锁定。 我走半英里(0.8公里)的巴士站。 我乘坐公共汽车。 然后,我走了很短的距离巴士站 办公室里。 我进入办公楼。 算法四,我叫的出租车公司。 我走出前门锁定,在出租车上,和 骑了三英里。 然后,我进入办公楼。 正如你可以看到,每一种方法做同样的事情 - 让我从家里去上班。 当然,然而,人们不禁要问,哪一个是最好的。 显然,如果有一个算法,这是优于 所有的人,我总是选择那一个,对不对? 不幸的是,如通常的情况下,其中每一个都有其 自己的优点和缺点。 例如,我们可以看看这些成本 替代品。 走显然是最便宜的,而乘坐出租车 是最昂贵的。 所以,如果我只关心尽可能少花钱,消费 可能的话,我会始终走。 另一方面,如果我评估的基础上如何 需要多长时间,我去上班,然后步行将 最慢的替代品。 在这种情况下,乘坐出租车可能是最好的选择。 这些相同种类的取舍 实际的计算机程序。 例如,如果您要搜索的列表中的项目, 有几种方法来完成这一任务。 但是,根据对列表中的初始状态 - 的项目数,您要的内存量 使用,等等 - 有不同的算法,将是最佳的,在 不同的情况。 这就是为什么它是重要的是要知道不仅有一个 算法可以完成你想要做的任务,但 还如何做,它的优点和缺点是什么。 否则,你可能在不幸的情况, 你当你决定采取的步行到办公室算法的 必须在15分钟内有 - 不正是最好的选择,如果你的老板正等着你 出席了会议。 我的名字是帕特里克·施密德,这是CS50。