算法导论(学习笔记) 第一章 算法在计算中的作用

前一阵买了算法导论的书一直没有开始看,今天开始准备研究研究,增进一下自己的基本功。 每看完一个系列都会来CSDN和我的简书中更新我的学习笔记,喜欢的朋友们可以关注我一下~
简书地址:
http://www.jianshu.com/u/197319888337

1.1 算法

非形式地说,算法就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。

数据结构

数据结构是一种存储和组织数据的方式,旨在便于访问和修改。

1.1-1 给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳的一个例子

学生时代学习成绩的排序是最常见的排序例子

1.1-2除速度外,在真实环境中还可能使用哪些其他有关效率的量度?
程序员代码的BUG率、处理一个问题的深度等

1.1-3 选择一种你以前已知的数据结构,并讨论其优势和局限。

就说二分法吧,优势就是比较简单,容易理解。缺点就是太慢。

有这么一个例子,比如从100个数中查找一个数,另这个数就是1。这个时候要先查50、25、12、6、3、2、1… 看吧很慢。。

1.1-4 前面给出的最短路径与旅行商问题有哪些相似之处?又有哪些不同?

最短路径问题是不用考虑路途中的目的点,直接到达终点。而旅行商问题是要从整体的考虑这个系统中完成以后最短的路径。

1.2 作为一种技术的算法

效率问题:

本书举了一个例子,就是插入排序和归并排序。在这里了解到插入排序所花的时间大致为C*N*N,C是不依赖于N的常数。所花费的时间大致和N*N成正比。

而归并排序所花的时间大致为C*N*lgN

基于数学知识你可能忘了比如 lgN是啥 如图:
这里写图片描述

这里写图片描述

嗯,就是这样,总的来说插入排序比归并排序慢的很多。

即使是最优秀的计算机配上了插入排序、一般的计算机配上了归并排序,那么在数量级相当庞大的时候,一般的计算机也比最优秀的计算机快的许多。

1.2-1 给出在应用层需要算法内容的应用的一个例子,并讨论涉及算法的功能。

百度地图的导航啊、里面用到的算法那就真的多了。。 什么最快路线啊 最短路径啊 走不走高速啊 等等等等。。

1.2-2 假设我们正比较插入与归并排序在相同机器上的实现。对规模为n的输入,插入排序运行8n^2步,而归并排序运行64nlgn步。问对哪些n值,插入排序优于归并?

在算法导论中lgN=log2N。

经计算,8n^2=64nlgn,在2

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值