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

本章主要介绍了算法的概念、算法的用途、算法的意义等,并做了后续章节的部分概括。
算法实际上就是对于外界输入进行处理并给出符合预期输出的计算过程,书上的概念是:“对于任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。”
可以把算法理解为转换输入与输出的一个过程。
算法可以解决很多生活中的实际问题,包括DNA测序、快速搜索等,应用范围十分广泛。
算法解决问题有两个共同特征:存在许多候选解与存在实际运用。
数据结构是一种存储和组织数据的方式,各有优劣。
另外算法设计还需要考虑程序并行性。
习题答案:
1.1-1:给出现实生活中需要排序的一个例子或者现实生活中需要计算凸壳的一个例子。
答:同类型商品按价格进行排序摆货销售;地产开发中根据几个点确定开发面积。
1.1-2:除速度外,在真实环境中还可能使用哪些其他有关效率的量度?
答:空间的占用率、稳固程度等(只能短暂快速使用同样效率低下)。
1.1-3:选择一种你以前已知的数据结构,并讨论其优势与局限。
答:链表。链表很容易删除与插入,但是却不方便查找,需要O(N)的复杂度;数组方便查找,但不方便删除与插入。
1.1-4:前面给出的最短路径与旅行商问题有哪些相似之处?又有哪些不同?
答:相似之处在于都是在给定的条件下求最短路径,但不同之处在于TSP!=The Shortest Path.因为TSP是要求经过每个点的最小环路,而最短路径只是求从起点到终点的最短距离。
1.1-5:提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。
答:购买相同的商品,到距离自身最近的店购买是最优解。
这里参考“背包问题”,可以使用动态规划与组合优化思想求得近似最优解。

使用算法的根本原因:空间、时间有限且宝贵。
这里书中采用了归并排序与插入排序作了比较,插入排序:O(N^2),归并排序:O(NlogN)。数据量越大,差距也就越大。
值得注意的是:算法是现代大部分计算机使用技术的核心!
习题答案:
1.2-1:给出在应用层需要算法内容的应用的一个例子,并讨论涉及的算法的功能。
答:对教师工资/学生成绩进行排序。
(更快、更准确地排序。)
1.2-2:假设我们正比较插入排序与归并排序在相同机器上的实现。对规模为n的输入,插入排序运行8N^2步,而归并排序运行64NlgN步。问对于哪些N值,插入排序优于归并排序?
答:我们知道N^2 的增长趋势一定高于NlgN,所以一定存在某个N值,使得当n>N时,8N^2>64NlgN。即求 N/8lgN > 1的临界值。
易知N=44时满足上式。
所以N=1…43时插入排序都优于归并排序。
注:lgN是以2为底。
1.2-3:n的最小值为何值时,运行时间为100n^2的一个算法在相同机器上快于运行时间为2 ^n的另一个算法?
答:即求前者小于后者的对应最小N值。
计算可得 N 最小值为:15。

思考题:

体会不同f(n)需要的时间规模即可,计算从略。

算法导论(原书第三版)答案与学习笔记(一)相关推荐

  1. 《算法导论(原书第3版)》pdf

    下载地址:网盘下载 内容简介  · · · · · · 在有关算法的书中,有一些叙述非常严谨,但不够全面:另一些涉及了大量的题材,但又缺乏严谨性.本书将严谨性和全面性融为一体,深入讨论各类算法,并着力 ...

  2. 虚拟内存(深入理解计算机系统原书第3版9节读书笔记)

    深入理解计算机系统(原书第3版)读书笔记,其实就是嚼碎了原文然后把一部分挑了出来摘要,免得读着读着忘了 文章目录 前言 一.物理和虚拟寻址 二.地址空间 三.虚拟内存作为缓存的工具 1.DRAM缓存的 ...

  3. CSS3秘笈第三版涵盖HTML5学习笔记6~8章

    第二部分----CSS实用技术 第6章,文本格式化 指定备用字体: font-family:Arial,Helvetica,sans-serif; 当访问者没有安装第一种字体时,浏览器会在列表中继续往 ...

  4. 计算机科学导论(原书第三版)框架总结

    计算机科学导论 文章目录 计算机科学导论 绪论 数字系统 数据存储 数据运算 计算机组成 计算机网络和因特网 操作系统 算法 程序设计语言 软件工程 数据结构 抽象数据类型 文件结构 数据库 数据压缩 ...

  5. 《深入理解计算机系统(原书第三版)》pdf

    下载地址:网盘下载 内容简介  · · · · · · 和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础.主要更新如下: 基于x86-64,大量地重 ...

  6. 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答

    原题目: **3.63 伪代码分析: x rdi ;n rsi n=n-0x3c(60); if(n>5){-->4005c3 } else{ goto:*(8n+0x4006f8) n= ...

  7. 深入理解计算机系统(原书第三版)系列 第一章 计算机系统漫游

    大学学习 计算机操作系统,当时太年轻,没有重视起来,今天 重拾书本,来看看这本传说中的 豆瓣9.9的神书 ,夯实基础,基础是石,敲出希望之火. 第一章 计算机系统漫游

  8. 《算法导论》(CLRS)第三版 第3章总结

    1. 渐进记号     2. Stirling公式 3. 整数函数(Floors & Ceilings) 补充: ceil(n/2) = floor((n+1)/2) (注:该式是数学表达式, ...

  9. matlab快速入门案例及常用技巧 | 《matlab数学建模方法与实践(第三版)》学习笔记

    目录 快速入门案例: 解决流程: 具体实现: 一.获取数据 二.数据探索和建模 三.分享结果 常用技巧 一.常用标点功能 二.常用操作指令 三.指令编辑操作键 四.matlab数据类型 五.开发模式 ...

  10. CSS3秘笈第三版涵盖HTML5学习笔记13~17章

    第13章,构建基于浮动的布局 使用的是float(浮动)属性 注:float:none值将取消所有浮动,通常只用来取消元素中已经应用的浮动. 切记:不需要给正文的div设计宽度,即使设计成固定宽度也不 ...

最新文章

  1. hibernate.hbm2ddl.auto配置详解
  2. Summed-Area Variance Soft Shadow Mapping(SAVSM):二
  3. 中科院信工所经验_保研经验分享:实力+经验+运气=保研成功
  4. 关于神经网络的调参经验技巧和调参顺序
  5. python-next
  6. CentOS 命令登录MySQL时,报错ERROR 1045 (28000) Access denied for user root
  7. Qt Designer的简单使用
  8. linux ls -lrt 命令是什么意思
  9. linux 下简单安装 pathogen.vim
  10. 认识Power BI
  11. 照片制作手机壳,定制手机壳diy需要什么设备?
  12. 关于administrator没有管理员权限问题
  13. C++虚函数表(vtable)和虚函数指针(vfptr)
  14. /oa/web应用程序中的服务器错误修复,如何处理OA系统在线阅读或编辑文档时weboffice控件提示“文件存取错误”的问题?...
  15. 查好友ios1.0总结II:开发节奏的把握
  16. 玫瑰李文案:玫瑰李水果店的文案怎么写
  17. Boson Netsim 6.0 download
  18. 学习记录---8255A简介及使用方法
  19. 吴恩达机器学习(五)梯度下降
  20. 蓝桥杯相关软件的安装

热门文章

  1. 华为交换机学习指南基于子网划分划分vlan
  2. 我国会计界计算机软件界大规模研究,初级会计电算化第一章练习.doc
  3. 流行的灯谜集锦(包括天鹅类)
  4. platform.pk8,platform.x509.pem生成keystore的方法
  5. java面试题1 牛客:A派生出子类B,B派生出子类C,并且在java源代码中有如下声明:
  6. 【Unity3D 灵巧小知识点】☀️ | Unity脚本生命周期
  7. coreseek mysql安装_coreseek安装和使用(一)
  8. 冰点文库下载器绿色版V3.2.15(0914)
  9. 网络蚂蚁(netants) v1.25 国际版 bt
  10. 汇编语言程序设计-钱晓捷(第五版)学习笔记目录