什么是算法
- 算法就是把输入转换成输出的计算步骤的一个序列。
- 算法必须精确描述所要遵循的计算过程。
算法是很有用的技术
必要性:
- 计算时间和存储空间是有限的资源,在时间和空间方面有效的算法帮助使用这些资源
- 在较大问题规模时,算法之间效率的差别特别显著
习题(选做。答案是自己的观点,欢迎批评指正)
1.1-3 选择一种你以前已知的数据结构,并讨论其优势和局限。
链表。
优势:内存地址不连续,通过指针指向下一元素内存地址,当需要删除或增加元素时,只需要改变一个指针的指向即可,其它元素不受影响。
局限:对于元素的查找,需要从链表头部遍历,一直到找到目标元素为止,时间复杂度高于数组。
1.1-5 提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。
想起初中数学中“两点之间,线段最短”的一个运用在生活中的问题。在一条河同一侧的两个村庄,欲在河上修建一座水电站,问建在哪里离两个村庄的距离之和最短。答案只有一个,那就是村庄A,和村庄B在河对岸等距离的位置,这两点直线与河的交汇处这个点符合要求。(感觉这个回答有点牵强,因为这个问题把实际生活理想化了,现实生活中并不存在必须把水电站修在确定的某个点上的问题)
电商企业仓库选址。以京东自营为例,京东基于大数据的用户画像,可以知道哪些地区消费哪些商品比较多,根据数据来选择仓库中心的位置,从而确保较快的送货速度,这种问题应该是只能逼近最佳解却无法准确求得最佳解。