算法导论读书笔记1

原创 2012年03月27日 22:15:20

本人兴趣范范,各种东西喜欢捣鼓捣鼓,深知不深入一门技术无法立足于世,不过,广阔的兴趣也很好,至少对什么都保持一份3分钟的热度,但是还是需要持之以恒!自勉。

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

(1)算法概念:

输入+定义良好的过程+输出=算法

(2)练习答案:

1.1-1:给出一个真实世界的例子,其中包含着下列的某种计算问题:排序,确定多矩阵的最佳顺序,或者找出凸壳。

排序:其实排序的例子很简单,比如班级成绩的排序;

确定多矩阵的最佳顺序:比如给定矩阵A1*A2*A3=?

如果A2*A3为单位矩阵了而A1*A2并不是单位矩阵,那么我们就需要先进行A2*A3的计算,这样可以减少运算量

凸壳:也就是找出凸多边形的问题,这里我的例子是书中的例子:即给定一些钉好的钉子,然后用这些钉子组成凸多边形,如何组成。

 

1.1-2除了运行速度以外,在真实世界问题背景中,还可以使用哪些效率指标?

个人觉得,其实算法是必要的,但是如果一味地追求算法也是不可取的,所以,这里我想提的是,当一个模块的效率高于其他模块甚至使得其他模块不能够与之协调工作的话,那么这个算法也算是无效的,所以说和其他模块的配合程度非常有关系,如果只是软件中的一个模块速度快,而其他的却不快那么也无济于事,在真是时间问题背景中,出了速度还有模块之间的耦合度和内聚度,以及模块的易用性和健壮性设计的接口是否合理以及可扩展性等等因素。

 

1.1-3选择你原来见过的某个数据结构,讨论一下其长处和局限性

拿线性表来说:如果是用数组实现的线性表,那么其长处在于随机存取元素,而缺点在于插入元素较慢,如果是单链表,那么长处在于插入元素方便,而无法随机存取元素。

 

1.1-4上文中给出的最短路径问题和旅行商人问题有哪些相似之处?有哪些不同之处?

相似之处:这两个问题其实都是求解最短的路程

不同之处:最短路径问题其实是给定了情景并且并不需要遍历所有的点,而旅行商人问题则需要遍历所有的点并求得最短的路程,问题的复杂度不一样。你可以找到一个最短的路径,但是你无法找到一个选择一条送货车行驶距离最短的送货顺序。这其实是一个NP完全性问题。

 

1.1-5举出一个现实世界的问题例子,它只能用最佳解决方案来解决。再举出一个例子,其中近似最优解决也足以解决问题

最佳解决方案:也就是说存在的最佳的解决方案,当然这列例子比较多:比如找出最短的距离的路径。

近似最优解:比如解一元二次方程的时候使用逼近法来获得在范围之内的解。

1.2-1给出一个实际应用的例子,它在应用这一层次上要求有算法性的内容,讨论其中所涉及算法的功能。

这里给出一个实际中的例子:比如亚马逊中如何根据用户所浏览的书籍,然后向用户推荐相关的书籍这里需要一个算法来支撑,涉及数据挖掘技术。

 

1.2-2假设我们要比较在同一台计算机上插入排序和合并排序的实现。对于规模为n的输入,插入排序要有耐性8n^2步而合并排序要运行64nlogn步。当n取怎样的值时,插入排序的性能要优于合并排序?

因为问题规模为n,所以令8n^2*n=64nlogn*n

可以发现当n=2^5=32时,左边<右边,

当n=2^6=64时,左边>右边

那么说明n在(32,64)这个区间之内,可以通过计算机计算出相应的结果。这里只给出一个大致估计的区间范围。

 

1.2-3对于一个运行时间为100n^2的算法,要使其在同一台机器上,比一个运行时间为2^n的算法运行时间更快,n的最小取值是多少?

假设条件:同一台机器,即速度相同

那么可以令100n^2=2^n,解出n,这里我解不出来啊,汗,手工真的解不出来-_-

 

思考题

1-1算法运行时间的比较

对于下表中的每一个函数f(n)和时间t,求出可以在时间t内被求解出来的问题的最大规模n。假设解决问题的算法解决该问题需要f(n)微秒。

该题实际上就是令f(n)=t然后求出n即可,可以使用Excel表格来计算,这里不在赘述。

版权声明:本文为博主原创文章,未经博主允许不得转载。

《算法导论》读书笔记(一)

第一部分 基础知识
  • haoyang_feng
  • haoyang_feng
  • 2016年09月11日 16:43
  • 481

《算法导论》读书笔记(二)——分治法

设计算法 插入排序使用了增量法,即先排j-1个,然后排j个,下面学习一种新的方法:分治法。 分治法 分治法的思想:大事化小,分而治之。把规模较大的问题分解为几个规模较小的类似子问题,递归的求解子问题,...
  • vinson0526
  • vinson0526
  • 2013年09月02日 22:15
  • 898

《算法导论》读后感

终于读完了这本厚书,虽然读了后面忘了前面,但读下来还是有点成就感的,而且我从中学到了好多东西。这本书又被称作CLRS,是由四位作者名字的首字母组成。我学习这本书纯属偶然,去年和一个同事交流技术时,他向...
  • swordmanwk
  • swordmanwk
  • 2011年07月12日 17:21
  • 1894

算法导论读书笔记(17)

http://www.cnblogs.com/sungoshawk/p/3775288.html 算法导论读书笔记(17) 目录 动态规划概述钢条切割 自顶向下的递...
  • hkstorm
  • hkstorm
  • 2017年03月11日 22:44
  • 88

算法导论的一些读后感

随意写写看看什么时候能看完,做个小记录。
  • huangsaijun123
  • huangsaijun123
  • 2016年02月04日 14:58
  • 237

《算法导论(第3版)》读书笔记(一)算法基础

本篇内容主要涉及《算法导论》一书中的第二章知识,涉及的内容有插入排序和归并排序 插入排序对于插入排序有个很明显的显示生活例子来帮助我们理解,插入排序的工作原理就像打扑克牌一样,右手从桌面上拿起一张牌,...
  • Richie_ll
  • Richie_ll
  • 2017年05月05日 15:12
  • 326

【算法导论】【第一章】麻省理工学院的算法导论公开课视频分享

授课老师是麻省理工学院的教授,采用的教材是《算法导论》,视频
  • u012613297
  • u012613297
  • 2014年05月03日 09:53
  • 405

算法导论 第十章:基本数据结构

1.栈 基本操作: 所有操作的运行时间均为:O(1) 2.队列 基本操作: 所有操作的运行时间均为:O(1) 3.链表 基本操作: SEARCH和DELETE操作的...
  • u010183397
  • u010183397
  • 2015年07月15日 16:27
  • 402

麻省理工《算法导论》公开课学习笔记【1】

最近在看麻省的《算法导论》公开课(以网易公开课为准),准备就学习体会和相关的编程练习写一篇连载。 简要说一下,语言希望能够都使用python。大多数的算法练习资料都是用C/C++,而且好多公司也要求...
  • julius819
  • julius819
  • 2012年11月30日 22:18
  • 1853

算法导论-25.1-最短路径与矩阵乘法

一、介绍 二、代码 #include #include using namespace std; #define N 6//点的个数 #define M 10//边的个数 //邻...
  • mishifangxiangdefeng
  • mishifangxiangdefeng
  • 2012年08月14日 20:29
  • 4424
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法导论读书笔记1
举报原因:
原因补充:

(最多只允许输入30个字)