第一章
作者:互联网
1.1-1
给出现实生活中需要排序的例子或者现实生活中需要计算凸壳的例子:
现实排序:
银行的收据票号,学生成绩,人员身高排队,字典排序,人名按字母排序
计算凸壳:
计算小区面积(将单栋房视为点),森林面积(将树视作点)[是否具有现实意义本人有不确定性]
1.1-2
除速度外,在真实环境中还可以使用那些其他有关效率的度量:
工程完成率,内存占有率,资源利用率
1.1-3
选择一种你一切已知的数据结构,并讨论其优势和局限
数组:
优点:查询快,通过索引直接查找
缺点:在中间部位增删复杂;大小固定;只能存储一种类型的数据
使用场景:频繁查询,很少增加和删除的情况
链表:
优点:插入快,删除快,只需要修改元素指针就行了
缺点:查找慢,需要从第一个元素一个个节点查
使用场景:少查询,需要频繁插入或删除的情况
栈:
优点:提供后进先出(LIFO)的存取方式,添加速度快
缺点:只能在一头操作,存取其他项很慢
使用场景:①实现递归 ②字符串逆序 ③符号是否匹配等
队列:
优点:提供先进先出的存取方式,添加速度快
缺点:只能在一头添加一头获取,存取其他项都很慢
使用场景:多线程阻塞队列管理非常有用
1.1-4
给出的最短路径与旅行商问题有那些相似之处?又有那些不同?
相似:都是寻找一条使得开销(距离)最少的路径
不同:旅行商要求遍历所以节点,但后者只求2点之间距离
1.1-5
提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。
背包问题,在有限空间内选择价值最高的物品。可以利用贪心算法求解近似最优解。(但有的脱离现实生活)
标签:场景,1.1,第一章,优点,缺点,排序,存取 来源: https://www.cnblogs.com/5dswanjia/p/16371600.html