《算法基础:打开算法之门》一1.3 针对非计算机专业人士的计算机算法

1.3 针对非计算机专业人士的计算机算法

即使你并非一个计算机内行,计算机算法也会跟你密切相关。除非你在进行不需要GPS的荒野探险,否则你每天都在使用算法。今天你上网了吗?你所使用的搜索引擎——无论是Google、Bing,或者其他任何的搜索引擎——都要采用复杂的算法来搜索网页并确定以何种次序呈现结果。今天你开车了吗?除非你驾驶的是老式汽车,否则车上的计算机会在你的旅程中根据算法做出无数个决策。我能继续举出更多例子。

身为一个使用算法的人士,你可以催促自己逐渐学习如何设计、如何表示和评估算法。我想你对算法有一点兴趣,因为你已经拿起这本书并展开了阅读。这
本书会令你受益匪浅!让我们看看能否让你提升一个高度,使得你在参加下次的鸡尾酒宴会并涉及算法这一主题时,你能尽情施展才华。是的,我明白,除非你住在硅谷,否则在鸡尾酒宴会上是很少会涉及算法主题的,但是基于某种原因,我们这些计算机科学的教授认为学生了解算法知识还是很重要的,我们的学生不能因缺乏计算机科学这一特定领域的知识而在鸡尾酒宴会上尴尬。

时间: 2024-09-19 10:06:28

《算法基础:打开算法之门》一1.3 针对非计算机专业人士的计算机算法的相关文章

《算法基础:打开算法之门》一1.4针对计算机专业人士的计算机算法

1.4针对计算机专业人士的计算机算法 如果你是一个计算机专业人士,那么你最好关注计算机算法!不仅仅是因为算法是计算机的核心,而且算法就像计算机的其他技术一样.你可以为了买一个最新.最好的处理器而花大价钱,但是你更需要在其上运行好的算法以使你的钱花得值. 这里有一个例子来说明算法确实是一门技术.在第3章中,我们将会看到几个将n个元素按升序排列的算法.其中一些算法的运行时间增长量级是n2,而另一些算法的运行时间增长量级仅仅为nlgn.什么是lgn呢?它是n的以2为底的对数,或记为log2n.计算机科

《算法基础:打开算法之门》一导读

前言 Algorithms Unlocked 计算机是如何解决问题的呢?小小的GPS是如何只在几秒钟内就从无数条可能路径中找出到达目的地的最快捷路径的呢?在网上购物时,又如何防止他人窃取你的信用卡账号呢?解决这些问题,以及大量其他问题的答案均是算法.我写本书的目的就是为你打开算法之门,解开算法之谜. 我是<算法导论>的合著者之一.<算法导论>是一本特别好的书(当然,这是我个人的主观评价),但是它确实相当专业. 本书并不是<算法导论>,甚至不能被称为一本教材.它既没有对计

《算法基础:打开算法之门》一1.5 拓展阅读

1.5 拓展阅读 我主观地认为,描述计算机算法最清楚.最有用的书籍是由四个精力充沛的美男子写的<算法导论>(Introduction to Algorithms[CLRS09]).该书通常被称为"CLRS",即四位作者名字的首字母.我在本书中多次引用<算法导论>中的内容.<算法导论>远比本书完整.详细,但是它假定你至少编写过一点计算机程序,并且懂得大量数学知识.如果你发现你能轻松地理解本书的数学知识,并且已经做好了深入研究这一主题的准备,那么<

针对网站排名优化的算法在笔者这里更是曝光率极高的分析源

搜索引擎算法我们之前了解过很多,尤其是针对网站排名优化的算法在笔者这里更是曝光率极高的分析源.在众多的搜索引擎算法中,直接影响网站排名算法的当属投票算法. 投票算法是我们进行网站基础优化的关键,同时也是提升排名的后期优化的主要针对面.提到投票算法,我们首先想到的就是站内链接的布局投票以及站外链接的推荐投票,但是投票算法仅仅是局限于此吗!?显然是不全面的. 搜索引擎排名列表中会根据用户需求来对网站内的关键词.页面及用户推荐进行投票得分,以此来提高网站排名. 第一,我们来了解一下网站关键词投票得分.

《算法基础:打开算法之门》一1.2 资源利用

1.2 资源利用 什么样的算法才能称为高效使用计算资源的算法呢?我们在讨论近似算法时提及了一个衡量效率的标准:时间.一个能给出正确输出但是会花费很长时间才能得出结果的算法可能是没有价值的.如果你的GPS需要一个小时才能计算出推荐的驾驶路线,你还会愿意打开GPS吗?诚然,一旦我们知道某算法能给出一个正确输出,时间便是我们用来衡量算法效率的主要方式.但是时间不是唯一的衡量标准.由于一个计算机算法必须能够在可用的内存空间上运行,因此我们可能还需要考虑该算法需要占用多大的计算机内存空间(它的"内存占用量

《算法基础:打开算法之门》一第3章 排序算法和查找算法

第3章 Algorithms Unlocked 排序算法和查找算法 在第2章中,我们看到了在数组上进行线性查找的三个算法.我们能做得更好吗?答案是:看情况.如果不清楚数组中的元素是否有序,我们是不可能做得更好的.在最坏情况下,我们必须查找数组的所有n个元素,因为如果在前n-1个元素中不能找到要找的值,那么要查找的元素可能在第n个位置上.因此,当我们不清楚数组中的元素是否有序时,我们不可能实现比Θ(n)更好的最坏情况运行时间. 然而,假定数组是以非递减顺序排序的,那么根据"非递减"的含义

《算法基础:打开算法之门》一2.1 如何描述计算机算法

2.1 如何描述计算机算法 将计算机算法描述成一个可执行程序可以有多种选择,例如使用通用的编程语言表示,像Java.C.C++.Python或Fortran.诚然,许多教科书上的算法都是这么表示的.但是使用实际的编程语言来表示算法所带来的问题是你可能会在语言细节上越陷越深,而对算法本身的认识反而模糊不清.另一种表示算法的方式是"伪代码",就像我们在<算法导论>中使用的一样,它听起来像是多种编程语言和英语的混合表示.如果你曾用一种实际的编程语言编写过程序,那么你就能很容易地搞

《算法基础:打开算法之门》一3.6 小结

3.6 小结 在本章和上一章中,我们已经看到了关于查找的4个算法和关于排序的4个算法.我们将它们的特性总结在以下两个表中.因为第2章的3个查找算法仅仅是关于同一个题目的变形,我们将BETTERLINEARSEARCH或SENTINELLINEARSEARCH作为线性查找的代表均可. 这两个表中没有显示平均情况下的运行时间,因为除了典型的快速排序外,其他算法的平均情况下的运行时间均与最坏情况下的运行时间一致.我们已经学习了,当数组元素按顺序随机产生时,快速排序平均情况下的运行时间仅仅是Θ(

《算法基础:打开算法之门》一1.1 正确性

1.1 正确性 产生问题的一个正确解决方案意味着什么呢?我们通常会精确地定义一个正确的解决方案涉及的内容.例如,为了寻找出最佳旅行路线,你的GPS会产生一个正确的解决方案.该方案可能是从你所在位置到目的地的所有可能路线中最快的路线,也可能是具有最短距离的路线,或者是能使你最快到达目的地同时也能免交过路费的路线.当然,你的GPS确定路线时所使用的信息可能不完全匹配实际情况.除非你的GPS能够获取实时路况信息,否则它可能假定穿过一条道路的时间等于道路的长度除以道路的限定时速. 然而,如果道路拥挤,当