算法:

1.通俗来讲,算法就是把输入转换成输出的计算步骤的一个序列
2.对于每个输入实例,算法都以正确的输入序列停机,则称该算法是正确的,并称正确的算法解决了给定的计算问题。
3.数据结构是存储和组织数据的一种方式,以便对数据迕行访问和修改。
4.衡量算法效率的常用标准是速度

算法问题的特征:

1.存在许多候选解。
2.存在实际应用。

练习

1.1.1给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳的一个例子。
生活中的排序:例如热搜榜按热度排序,考试排名按成绩排序等等。
生活中的凸壳:计算机视觉领域的轮廓匹配问题求解。
1.1.2除速度外,在真实环境中还可能使用那些其他有关效率的度量?
项目开发效率,内存设备使用效率。
1.1.3选择一种你以前已知的数据结构,并讨论其优势和局限。
那肯定必少不了面试常问的HashMap
优点:快速的查询速度
动态的可变长存储数据
缺点:需要额外计算一次hash值
如果处理不当会占用额外的空间
线程不安全
对于极端情况可能会影响查询效率
1.1.4前面给出的最短路径与旅行商问题有哪些相识之处?又有那些不同?
简单介绍一下最短路径和旅行商问题吧
最短路径:找出两节点之间总权和最小的路径
旅行商问题:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。
相似之处:都是计算节点之间的最短路。
不同之处:最短路问题更侧重于寻找两个节点(起点和终点)之间最短路径,而旅行商问题则更侧重如何找到一条能访问每个节点并且回到起始节点的最短路径。
1.1.5提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。
最佳解:寻找一个喜欢的女朋友。
近似最佳解:寻找一个合适的女朋友。