1.1-1给出显示生活中需要排序的一个例子或显示生活中需要计算凸壳的一个例子
凸壳可以看作是点集合的边界,其精确定义如下:
设集合S是n维空间的k个点组成的集合,即S={x1,x2,…xk},xi是n维向量。定义S的凸壳Conv(S)为:
Conv(S)={x=λ1*x1+λ2*x2+…+λk*xk | λ1+λ2+ …+λk=1}
1)大个在前小个在后排序O(∩_∩)O,从小到大听了好多遍哒。
2)某个十字路口,不同的汽车以不同的概率到达,到达的总概率为1,不同汽车到达后的行驶时间也不同,问十字路口平均每辆车的概率。
1.1-2除速度外,再真是环境中还可能使用哪些其他有关效率的度量?
功率、水流速度、带宽(世界是运动的)
1.1-3选择一种你以前已知的数据结构,并讨论其优势和局限
冒泡排序
优势:正序的时候比较一次就出结果。
劣势:逆序的时候比较(n+1)n/2次出结果
1.1-4 前面给出的最短路径与旅行商问题有哪些相似之处?又有哪些不同?
旅行商问题(Traveling Salesman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。
相似之处:都存在许多候选解,但绝大多数候选解都没有解决手头的问题。寻找一个真正的解或一个最好的解可能是一个很大的挑战。
不同之处:最短路径只要找出路径最短即可,但像旅行商这样的问题,要考虑的因素不止是最短路径一个,并没有一个容易识别的候选解集。
1.1-5提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。
最佳解:求两地的最短路径(两点之间直线最短)
近似最佳解:最经济可行的路径
1.2-1给出在应用层需要算法内容的应用的一个例子,并讨论涉及的算法的功能。
图形用户界面的画图,小游戏的实现,万事皆算法。算法的功能:提供解决问题的方法,减少冗余,提高效率,并存在一定的规律行,逻辑上存在条理。
1.2-2假设我们正比较插入排序与归并排序在相同机器上的实现。对规模为n的输入,插入排序运行
8n2
步,而归并排序运行
64nlgn
步。问对哪些n值,插入排序优于归并排序。
当n>43时候成立,
8n2<64nlgn
解方程即可。
1.2-3 n的最小值为何值时,运行时间为
100n2
的一个算法在相同机器上快于运行时间为
2n
的另一算法?
100n2
=
2n
解方程,n=15时候成立。