第一章 算法在计算中的作用

1.1 算法

对每个输入都以正确的输出停机,则称算法正确,并且该算法解决了给定的计算问题。

算法可以用人类语言说明,也可以说明成计算机程序,甚至说明成硬件设计。唯一要求是这种说明能精准描述算法遵循的计算过程。

互联网中使用算法的实例有:为数据传输寻找好的路由:使用搜索引擎快速的找到特定信息所在的网页。

电子商务使用的核心技术包括公钥密码与数字签名,他们以数值算法和数论为基础。

有时不需要寻找最佳解,找到一个接近最佳解的候选解即可。

并行性与多线程算法。


练习:

1.1-1 给出现实生活中需要排序的一个例子或者现实生活中需要使用凸壳的一个例子。

答:排序:考试成绩排名。

       凸壳:轮廓匹配。


1.1-2 除速度外,在真实环境中还可能使用哪些其他有关效率的量度。

答:占用资源,精确度。


1.1-3 选择一种你以前已知的数据结构,并讨论其优势与局限。

答:图。优势:能对现实世界中的问题进行建模。

               局限:有些算法慢且复杂(没有进行进一步了解)。


1.1-4 前面给出的最短路径与旅行商问题有哪些相似之处?又有哪些不同?

答:相似:都是在所有满足条件的路线中寻找一个最短的。

       不同:旅行商问题需要经过每一个中间点并回到起点,而最短路径只需要到达终点。


1.1-5 提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。

答:最佳解:考试成绩排名。

       近似最佳解:路线问题。


1.2 作为一种技术的算法

使用时间和空间方面有效率的算法。

GUI:图形用户界面。


1.2-1 给出应用层需要算法内容的应用的一个例子,并讨论涉及的算法的功能。

答:一些地图软件(高德地图,谷歌地图等)里寻找最短路线的功能。


1.2-2 假设我们正比较插入排序与归并排序在相同机器上的实现。对规模为n的输入,插入排序运行8n²步,而归并排序运行64nlgn步。问对哪些n值,插入排序优于归并排序。

答:8n²<64nlgn ⇨ n<8lgn ⇨ n<=6 即:对于n=1、2、3、4、5、6,插入排序优于归并排序。


1.2-3 n的最小值为何值时,运行时间为100n²的一个算法在相同机器上快于运行时间为2^n的另一个算法?

答:100n²<2^n,n=15时开始满足,即:n的最小值为15。


你可能感兴趣的:(算法导论学习笔记)