第1章 算法在计算中的作用

1.1 算法

1.1-1

现实生活中需要排序的例子:将学生按成绩从高到底排序。

1.1-2

除速度外,在真实环境中还可能使用油耗、机械效率、发电功率等有关效率的度量。

1.1-3

数据结构:栈。

优势:在顶部插入和删除数据很快;

局限:在除顶部外的其他位置操作数据速度较慢。

1.1-4

最短路径与旅行商问题的相似之处:都是为了求最短路径;

不同之处:最短路径是单程的,不需要回到出发点;而旅行商问题最终是要回到出发点的。

1.1-5

只有最佳解才行的现实生活问题:给定一些钱,去购买有固定价格的多种商品,要求购得的商品总数量最多。

近似最佳的一个解也足够好的问题:给定一张交通图,上面标记了\(n\)个路口和连接路口的道路,要求确定图中是否存在\(k(k\leq n)\)个路口,其中每对路口之间都有一条道路来连接。

1.2-1

在应用层需要算法内容的应用的一个例子:导航。

算法的功能:寻找路线、描绘地图、插入地址。

1.2-2

对\(n\leq6\),插入排序优于归并排序。

1.2-3

\(n\)的最小值为\(15\)时,运行时间为\(100n^2\)的一个算法在相同机器上快于运行时间为\(2^n\)的另一个算法。


思考题

1.1

假设求解问题的算法需要\(f(n)\)毫秒,对下表中的每个函数\(f(n)\)和时间\(t\),确定了可以在时间\(t\)内求解的问题的最大规模\(n\)。
 

1秒钟

1分钟

1小时

1天

1月

1年

1世纪

$$\lg{n}$$$$10^{1000}$$$$10^{60000}$$$$10^{3600000}$$$$10^{86400000}$$$$10^{2.592e^9}$$$$10^{3.1536e^{10}}$$$$10^{3.1536e^{12}}$$
$$\sqrt{n}$$$$1000^2$$$$60000^2$$$$3600000^2$$$$86400000^2$$$$(2.592e^9)^2$$$$(3.1536e^{10})^2$$$$(3.1536e^{12})^2$$
$$n$$100060000360000086400000$$2.592e^9$$$$3.1536e^{10}$$$$3.1536e^{12}$$
$$n\lg{n}$$38614426621399121928743054808363312548583275655500637

$$n^2$$

31

244

18979295509111775831775837

$$n^3$$

10391534421373315914664

$$2^n$$

9152126313441
$$n!$$68911121315

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值