1.1 算法
1.1-1 给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳的一个例子。
现实中的例子就比如商场产品单价、销量、总价的排序。还有学生考试成绩的排序,还有一些需要按一定属性排序的情况。
觉得第二版可能有一个矩阵相乘的题,再看。
可以直观的看成木板上的钉子,还是不太理解。难道是要通过算法计算木板上有多少凸出来的钉子?还要知道先后顺序?
1.1-2 除速度外,在真实环境中还可能使用哪些其他有关效率的量度?
机器的物理性能,算法的精度,占用的内存大小,健壮性(鲁棒性),在一些情况下还可以保持程序运行,可执行性,安全性等
1.1-3 选择一种你以前已知的数据结构,并讨论其优势和局限。
顺序表与链表,较稳定的线性表选顺序存储,频繁做插入删除的即动态性较强的线性表宜选择链式存储。
1.1-4 前面给出的最短路径与旅行商问题有哪些相似之处?又有哪些不同?
最短路径情况都固定,就是求路线的选择。而旅行商问题不仅包括路径的选择,还包含很多具体的情况,相当于线和点一起选择,需要的算法更加复杂。
1.1-5 提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。
给出N个点,这N个点不能全部在一条直线上,确定一个周长最小的矩形将这N个点全部包括进去。看到的一道题,别人的,说是携程比赛项目,我接触的还不多,我想看看以后我能不能解决这个问题。
近似最佳的那就是无理数求解了,总是要有一个结果,近似就好。
1.2 作为一种技术的算法
1.2-1 给出在应用层需要算法内容的应用的一个例子,并讨论涉及算法的功能。
比如最短路径问题,地图导航,需要在两个点之间寻找最短路径,但是又要同时考虑路况时间等信息,需要复杂的算法。在游戏中移动一个人物,应该用最短路径来算,如果不是最短路径,就可能会出现移动延迟,可能选择了一个地方,几分钟后人物才开始动,或者不是沿着直线过去。
1.2-2 假设我们正比较插入与归并排序在相同机器上的实现。对规模为n的输入,插入排序运行8n^2步,而归并排序运行64nlgn步。问对哪些n值,插入排序优于归并?
令 8n^2等于64nlgn,求出范围 2<n<43