第一章 算法在计算中的作用(The Role of Algorithms in Computing))

这一章的内容比较好理解, 很基础的引入, 为了让自己精读, 所以扣着好好去想了他的例子.
看英文版比较抗拒, 但防止翻译出错误, 就把例子的英文原文附上.
type right by Thomas Alan 光风霁月023 .XDU

1.1 算法(Algorithms)

1. 1-1 给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳(凸包, convex hull)的一个例子
(en) Give a real-world example that requires sorting or a real-world example that requires
computing a convex hull.

  • 排序的例子很多, 任意一个app的展示列表, 基本都是基于某些既定规则的排序.
  • 凸壳例子不好找, 感觉有点像二维点集画出轮廓线
  • 查资料后, 是中文版书籍翻译问题, 凸壳=>凸包, 凸包问题在实际中的应用很广泛,它可以应用于冶金术、城市规划、图像处理、统计学等等多个领域。
    Convex Hull

2. 1-2 除速度外,在真实环境中还可能使用哪些其他有关效率的量度?
(en) Other than speed, what other measures of efficiency might one use in a real-world
setting?

  • 速度是时间角度上, 空间角度有资源利用率. 因此可以将消耗的内存, 占用网络带宽的比率作为量度.

2. 1-3 选择一种你以前已知的数据结构,并讨论其优势和局限?
(en) Select a data structure that you have seen previously, and discuss its strengths and
limitations.

  • 数据结构有很多, 这个文章总结比较全面 https://www.jianshu.com/p/80a3b8579999

2. 1-4 前面给出的最短路线与旅行商问题有哪些相似之处?又有哪些不同?
(en) How are the shortest-path and traveling-salesman problems given above similar?
How are they different?

  • 介绍,
    最短路线问题: 顾名思义,
    旅行商问题: https://baike.baidu.com/item/%E6%97%85%E8%A1%8C%E5%95%86%E9%97%AE%E9%A2%98/7737042?fr=aladdin
  • 相似: 都是为了使最终的消耗达到最小, 而消耗与路线正相关, 于是本质就是寻找出最短的路线
  • 不同: 旅行商问题需要遍历所有的节点, 而最短路径是有限的点

2. 1-5 提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好?
(en) Come up with a real-world problem in which only the best solution will do. Then
come up with one in which a solution that is “approximately” the best is good
enough.

  • 最佳解: 类似排序问题的板上钉钉的事情
  • 近似最佳:
    讨价还价类, 因为不知道对方的心理价位, 一种博弈.
    或者是抽卡, 抽到差不多了的就可,
    也可以是股票, 感觉到的高位和低位(这可说不准).
    也就是模棱两可的, 无法证明完全ok的问题.

1.2 作为一种技术的算法(Algorithms as a technology)

1. 2-1 给出在应用层需要算法内容的应用的一个例子,并讨论涉及的算法的功能。
(en) Give an example of an application that requires algorithmic content at the application
level, and discuss the function of the algorithms involved.

  • 很多事情都需要, 搜到的例子答案有求网络路由的最短路径, 一定是需要算法的.

1. 2-2 假设我们正比较插入与归并排序在相同机器上的实现。对规模为 n 的输入,插入排序运行 8n2 步,而归并排序运行 64nlgn 步。问对哪些 n 值,插入排序优于归并?
(en) Suppose we are comparing implementations of insertion sort and merge sort on the
same machine. For inputs of size n, insertion sort runs in 8n2 steps, while merge
sort runs in 64n lgn steps. For which values of n does insertion sort beat merge
sort?.

  • 计算一下, 8n2 < 64nlgn 求得 1 < n < 44. 此时插入排序优于归并排序

1. 2-3 n 的最小值为何值时,运行时间为 100n2 的一个算法快于运行时间为 2n 的算法?
(en) What is the smallest value of n such that an algorithm whose running time is 100n2
runs faster than an algorithm whose running time is 2n on the same machine?

  • 计算 100n2 < 2n (n > 0), 求得 0 < n < 0.02

思考题(Problems)

1-1 运行时间的比较
假设求解问题的算法需要 f(n) 毫秒,对下表中的每个函数 f(n) 和时间 t ,确定可以在时间 t 内求解的问题的最大规模 n
(en) Comparison of running times
For each function f(n) and time t in the following table, determine the largest
size n of a problem that can be solved in time t , assuming that the algorithm to
solve the problem takes f(n) microseconds.

e.g. ∞太大了, 不写了

1 sec 1 min 1 hour 1 day 1 month 1 year 1 century
21000 260000
106 4.29E+9 1.76E+13 9.01E+15
21000 260000
1*103 6*104 3.6*106 8.64*107 2.59*108
32 245 1898 9296 50912 177584 1775838
11 40 113 443 638 3145 14598
10 16 22 27 32 35 42
7 9 10 12 15 17 18

你可能感兴趣的:(第一章 算法在计算中的作用(The Role of Algorithms in Computing)))