<算法导论>学习笔记(1)--第1章 算法在计算中的作用

<算法导论>学习笔记(1)--第1章 算法在计算中的作用

Having a solid base of algorithm knowledge and technique is one characteristic that separates the truly skilled programmers from the novices.

  是否具有扎实的算法知识和技术基础,是区分真正熟练的程序员与新手的一项重要特征。


1. 算法(algorithm)可以用英语、计算机程序甚至是硬件设计来表达,它是一系列的 计算步骤,用来将输入数据转换成输出结果。简单的说,算法是定义良好的计算过程。

2. 算法有正确的,也有不正确的,如果不正确算法的错误率可以得到控制的话,它们有时也是有用的,但一般我们只关注正确的算法。

3. 数据结构是存储和组织数据的一种方式,以便对数据迕行访问和修改。没有一种数据结构可以适用于所有用途和目的,因此了解数据结构的长处和局限性相当重要。

4. 衡量算法效率的常用标准是速度。

5. 算法即是一系列的计算步骤,用来将一个有效的输入转换成一个有效的输出。

6. 计算机的有限的资源必须被有效的利用,算法就是来解决这些问题的方法。




练习

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

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

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

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

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


【练习答案】

1.1-1:给出现实生活中需要排序的一个例子

a)排序:将一次考试中 500名考生的成绩按分数从高到低迕行排名。
b)确定多矩阵相乘的最佳顺序:某实验模型,需要计算 返 17个矩阵的积,根据矩阵乘法的结合律确定计算顺序,以达到计算乘法次数最少的目的。矩阵乘法的结合律:
c)找出凸壳:木板上钉了 21个钉子,以其中一些钉子为顶点组成的凸多边形可以包含所有 21个钉子,找出使凸多边形达到最小的所有钉子。


1.1-2:
占用资源大小,问题的解决程度,答案精度等。


1.1-3:

栈(LIFO):长处是可以严格按照后迕先出顺序,非常适合如保存程序调用的迒回地址之类的特殊应用,缺点是无法迕行随机读写。


1.1-4:
相似之处:都是寻求最短的路线

不同之处:最短路线问题是从若干条可选线路中选择一条线路使之在两个点之间达到 


学习的路上,与君共勉。


<算法导论>学习笔记(1)--第1章 算法在计算中的作用

上一篇:容器适配器实现栈


下一篇:hdu 1754 I Hate It(树状数组 | 线段树)