1.1 算法
算法就是定义良好的集算过程,它取一个或一组值作为输入,并产生一个或一组值作为输出。亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出结果。
如果一个算法对其每一个输入实例,都能输出正确的结果并停止,则称它是正确的。
NP完全问题:迄今为止没有找出NP完全问题的有效解法,但也无法证明其有效解法不存在。其次,如果该集合中任何一个问题存在有效解法,则该集合中其他所有问题都存在有效解法。
练习
1.1-1 给出一个真实世界的例子,其中包含下列的某种计算问题:排序,确定多矩阵相乘的最佳排序,或者找出凸壳。
排序:给学生考试成绩按从高到低统计排序
确定多矩阵相乘的最佳排序:
找出凸壳:一群人围在操场上,找出一个面积最小的多边形将他们围住
1.1-2 除了运行速度以外,在真实世界问题背景中,还可以使用哪些效率指标?
可以使用的指标包括:单位时间内成品的比例、完成一件成品需要的原料等
1.1-3 选择你原来见过的某种数据结构,讨论一下其长处和局限性。
栈:先进后出的结构,使得数据存储很方便,且查询速度为O(n)。但是对于大数据量的查询与删除插入等操作不能很好的执行
1.1-4 上文中给出的最短路径问题和旅行商人问题有哪些相似之处?有哪些不同之处?
相似之处:均为寻找路径的最小值
不同之处:旅行商多少人问题需要考虑货物与距离的叠加限制条件,而最短路径只需要距离最短即可。
1.1-5