麻省理工学院公开课-第一讲:算法分析

http://www.cnblogs.com/banli/archive/2013/05/19/3087486.html

http://www.cnblogs.com/diliwang/p/3352946.html

自己再梳理一下,便于记忆:

1.插入排序(Insertion Sort)

问题描述:输入一个数组A[1,2....n],输出一个按升序排列的数组A‘.

算法分析理论:

通常,我们寻找算法运行的最大时间(上界)T(n),因为最坏的情况是一个承诺,一个保证.

因为,算法的运行时间依赖于我们的电脑。

  • 相对速度(在同一台机器上)
  • 绝对速度(在不同机器上)

所以,引入渐进符号:θ(n),对算法进行 渐进分析(asymptotic analysis),这就是算法大局观(Big Idea).

BIG IDEA:

  • 忽略掉于机器有关的常量(具体操作时间,如赋值操作).
  • 不去检查实际运行时间,而是关注运行时间的增长(当n趋于无穷大时,T(n)是多少).

如何计算θ(n)?

  • 在数学领域:θ(n)有严格的数学定义,见第二讲。
  • 在工程学上:去掉低阶项,忽略常数系数。例如:3n+ 90n2 - 5n + 6046 = θ(n3)

数学与工程的trade-offs:

  • 当n趋于无穷大时候,θ(n2) << θ(n3);
  • 有时候交点n0太大,计算机无法运行,所以我们会对一些相对低速的算法感兴趣。这应该就是理论与实际的妥协,trade-offs.

插入排序时间分析:

最坏情况:输入一个逆序数列.

插入排序快不快?

对于较小的n,比较快;对于较大的n,比较慢,更快的一种排序算法是归并排序(Merge Sort).

2.归并排序(Merge Sort)

归并排序时间分析(用递归树分析):

 

  • 在实际中,当 n>30 时,归并排序将打败插入排序.
时间: 2024-10-08 00:55:08

麻省理工学院公开课-第一讲:算法分析的相关文章

麻省理工学院公开课-第二讲:渐进符号、递归及解法

http://blog.csdn.net/julius819/article/details/8267060 http://www.cnblogs.com/banli/archive/2013/05/21/3089900.html

MIT麻省理工学院公开课:计算机科学及编程导论 Python 笔记1-3

Lecture1:Goals of the course; what is computation; introduction to data types, operators, and variables Python High (√) VS. low General (√) VS. targetted Interpreted (√) VS. compile Syntax语法:what are legal expressions "cat dog boy " Static seman

麻省理工公开课:线性代数 第6课 列空间和零空间

参考资料: 网易公开课:http://open.163.com/special/opencourse/daishu.html 麻省理工公开课:线性代数 一.向量空间和子空间(加法封闭.数乘封闭) 向量空间$R^3$的子空间:$R^3$.任意经过原点$(0, 0, 0)$的平面$P$和直线$L$.只包含零向量的空间$Z$ 并集:$P\bigcup L$是子空间吗? //否!对加法运算不封闭 交集:$P\bigcap L$是子空间吗? //是! 结论:任意子空间的交集仍然是子空间 二.矩阵列空间 $

麻省理工公开课:线性代数 第7课 求解Ax=0:主变量、特解

参考资料: 网易公开课:http://open.163.com/special/opencourse/daishu.html 麻省理工公开课:线性代数 教材:Introduction to Linear Algebra, 4th edition  by Gilbert Strang 链接:https://pan.baidu.com/s/1bvC85jbtOVdVdw8gYMpPZg 提取码:s9bl 假设:$A$为$3\times 4$长方形矩阵(线性相关),求解$A\mathbf{x}=0$

麻省理工公开课:线性代数 第8课 求解Ax=b:可解性和解的结构

参考资料: 网易公开课:http://open.163.com/special/opencourse/daishu.html 麻省理工公开课:线性代数 教材:Introduction to Linear Algebra, 4th edition  by Gilbert Strang 链接:https://pan.baidu.com/s/1bvC85jbtOVdVdw8gYMpPZg 提取码:s9bl 假设:$A$为$3\times 4$长方形矩阵(线性相关),求解$A\mathbf{x}=\ma

麻省理工公开课:线性代数 第10课 四个基本子空间

参考资料: 网易公开课:http://open.163.com/special/opencourse/daishu.html 麻省理工公开课:线性代数 教材:Introduction to Linear Algebra, 4th edition  by Gilbert Strang 链接:https://pan.baidu.com/s/1bvC85jbtOVdVdw8gYMpPZg 提取码:s9bl 假设:$m\times n$矩阵$A$ 一.矩阵$A$的列空间:$C(A)$ (1)是$R^m$

第一课 矩阵的行图像与列图像(麻省理工公开课:线性代数)【转载】

转载自:http://blog.csdn.net/a352611/article/details/48602207 仅用于个人笔记. 目录(?)[-] 从方程组到矩阵 row picture 行图像 column picture 列图像 本系列笔记为方便日后自己查阅而写,更多的是个人见解,也算一种学习的复习与总结,望善始善终吧~ 1. 从方程组到矩阵  矩阵的诞生是为了用一种简洁的方式表达线性方程组 个人理解来说就是为了更好的描述和解决 Ax = b 从系统的角度来理解: A 就是我们的系统 x

【干货】马哥linux运维学院公开课-第一季

一大波高质量Linux运维和自动化运维公开课正在来袭,你准备好了么? 2016为了感谢广大同仁对马哥linux运维学院的支持,经过内部商讨,特推出一系列公开课来助力大家在职场中的发展!接下来就跟随小编来瞧瞧马哥linux运维学院都为大家呈上了一份什么样的神秘干货大礼包??? 想要参加公开课的小伙伴们请加群:339184057公开课报名链接:http://ke.qq.com/course/119808 课程详情 O2O业务的运维挑战和解决之道 AWK企业实战案例分享 深入浅出三剑客-grep/se

韩顺平_PHP程序员玩转算法公开课(第一季)01_算法重要性_五子棋算法_汉诺塔_回溯算法_学习笔记_源代码图解_PPT文档整理

文西马龙:http://blog.csdn.net/wenximalong/ 课程说明:算法是程序的灵魂,为什么有些网站能够在高并发,和海量吞吐情况下依然坚如磐石,大家可能会说: 网站使用了服务器集群技术.数据库读写分离和缓存技术(比如memcahced和redis等),那如果我再深入的问一句,这些优化技术又是怎样被那些天才的技术高手设计出来的呢? 我在上大学的时候就在想,究竟是什么让不同的人写出的代码从功能看是一样的,但从运行效率上却有天壤之别, 就拿以前在软件公司工作的实际经历来说吧, 我是