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

练习

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

排序:购物网站需要知道当前商品下价格最低的店铺或者销量最高的店铺。

凸壳:当需要在一片海域搜救时,必须通过重要的点来计算搜寻范围。只有确定了凸壳的面积,才能确定最小搜救面积。

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

功率,也就是焦耳/秒。代表一个物体制造或者消耗能量的速度。

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

数组,C语言内置的数据结构。

优势:可以进行随机访问所以访问的速度很快。

劣势:但是无法快速的插入或者删除,并且也不能随意的改变容量。

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

相似:最短路和旅行商问题都是计算最短路径的问题。

不同:普通的最短路径是定点求解,而旅行商问题是求解点和最短路径,复杂度更高。

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

唯一解:银行卡在取款的时候,账号必须精确匹配密码才能进行取款操作。

近似解:电灯的电压只要控制在一定的范围之内就可以很好的工作。

练习

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

计算一个电子地图上出发地和目的地之间最短的路程。该应用需要使用以距离为权重的无向图最短路算法。

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

首先联立,令:8n^2 = 64nlgn; 然后计算出n为43.5593时等式成立,即输入规模n不超过43时插入排序优于归并排序。

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

首先联立,令:100n^2 = 2^n;计算出n = 14.32,也就是说当输入规模大于15时,前者快于后者。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 算法 非形式地说,算法就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为...
    张文靖同学阅读 1,104评论 0 1
  • 1.1 算法 算法就是把输入转换成输出的计算步骤的一个序列。问题陈述说明期望的输入/输出关系,算法则描述一个特定的...
    Nautilus1阅读 666评论 0 0
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,223评论 0 52
  • 你好我是中国人,我来自一个爱好和平的国家,来自一个拥有众多历史经历的国家,来自一个拥有几千年背景的国家,我为我是这...
    光年之外SNOW阅读 302评论 0 1
  • 01:请马上停用卸妆油 长期使用卸妆油的人几乎都有一些共同的肌肤问题:脸颊泛红,长一些小痘痘,所以最好用膏状卸妆。...
    贝拉贝拉2阅读 606评论 0 0