《算法导论》读书笔记--第一章

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

一、什么是算法?为什么算法值得研究?相对于计算机中使用的其他技术来说算法的作用是什么?

算法就是任何良定义的计算过程,该过程取某个值或者值的集合作为输入并产生某个值或者值的集合作为输出。这样算法就是把输入转换成输出的计算步骤的一个序列。

若对每个输入实例算法都以正确的输出停机,则称该算法是正确的,并称正确的算法解决了给定的计算问题。注意:不正确的算法只要其错误率可控时可能是有用的,但是我们通常只关心正确的算法。

数据结构是一种存储和组织数据的方式,旨在便于访问和修改。没有一种单一的数据结构对所有用途均有效,所以重要的是知道几种数据结构的优势和局限。

下面看一下NP完全问题

1、迄今为止,没有找到对NP问题的有效算法,但是也没有人能证明NP完全问题确实不存在有效算法,也就是说,对于NP完全问题,是否存在有效算法是未知的。

2、如果任何一个NP完全问题存在有效算法,那么任何一个NP完全问题都存在有效算法。

3、有几个NP完全问题类似于(但是又不完全同于)一些有着已知有效算法的问题。“计算机科学家迷恋于如何通过对问题陈述的一个小小的改变来很大地改变其已知最佳算法的效率”。

为什么要了解NP完全问题呢?因为在实际问题中会时不时地冒出来,如果你能证明一个问题是NP完全的,那么就不要去找有效算法了,去找一个较好的解就可以了。

二、作为一种技术的算法

1、效率:一个算法的效率是衡量算法有效性的标准。

2、应该把算法看成一种技术,很重要。

posted @ 2015-06-09 00:20  司空格子Ored  阅读(376)  评论(0编辑  收藏  举报