算法导论第一课

1.课程分两部分:算法分析,算法设计

2.算法分析:首先考虑的是性能,how fast;其次会考虑通信,ram,disk占用等等

3.what is more important than perf ? 功能性,模块化,安全,用户友好,可扩展...

then why study algs?  1,perf 在解决问题的最前沿,决定了是否可行,他也是用户友好等的保证,相当与货币,可以用来交换 安全,界面...

4 运行时间的分析:最差情况,平均情况(假设均匀分布),最好情况(bogus假象,不能区分差的算法,不作考虑)

分析方法: 渐近分析(忽略硬件,只考虑时间如何随size增长)

算子Θ: 弱符号,只是一种描述

5.插入排序

循环将j处(2--n)的key插入到前面已经排好的串中

n2

6.归并排序:  分成两表,分别排序,最后合并,是递归操作

递归树方法:  树的高度:lgn  每行个数:cn

得到复杂度是: nlgn

算法导论第一课

时间: 2024-11-07 11:03:02

算法导论第一课的相关文章

算法导论 第一章

算法导论 第一章,为了让自己基本功更加的扎实,从今天起开始学习算法导论. 我以一位学长的博客为学习的参考资料,开始我的学习吧! 附上一句话: Having a solid base of algorithm knowledge and technique is one characteristic that separates the truly skilled programmers from the novices. 是否具有扎实的算法知识和技术基础,是区分真正熟练的程序员与新手的一项重要特

MIT算法导论——第一讲.Analysis of algorithm

本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解.(http://v.163.com/special/opencourse/algorithms.html) 第一节-------课程简介及算法分析 Analysis of algorithm 算法分析:关于计算机程序在效率和资源利用方面的理论

算法导论--第一部分(基础知识)

第一章  算法在计算中的作用 1.1 算法 算法是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或者值的集合作为输出. 对每个输入实例,算法都以正确的输出停机,则称该算法是正确的. 算法的运行时间: $\log{n} < \sqrt{n} < n < n\log{n} < n^2 < n^3 < 2^n < n!$

算法导论-第一章-算法在计算中的作用(速记)

算法就是把输入转换成输出的计算步骤的一个序列. 问题实例由计算该问题解所必需的(满足问题陈述中强加的各种约束的)输入组成. 若对每个输入实例,算法都以正确的输出停机,则称该算法是正确的. 许多有趣的算法问题所共有的两个特征: 1.存在许多候选解,但绝大多数候选解都没有解决手头的问题.寻找一个真正的解或一个做好的解可能是一个很大的挑战. 2.存在实际应用. 数据结构是一种存储和组织数据的方式,旨在便于访问和修改. 原文地址:https://www.cnblogs.com/lixiaov/p/104

[算法导论]#3 循环不变式

在面试某手的时候,完成了一个有序链表的合并,之后面试官又要求用循环不变式来证明算法的正确性--循环不变式?这是啥 后来发现这是算法导论第一章的内容. 不会=算法导论没看 分析过程 必须证明三条性质 初始化:循环的第一次迭代之前,它为真 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真 终止:在循环终止时,不变式为我们提供了一个有用的性质,该性质有助于证明算法是正确的 前两步有点类似于数学归纳法,而最后一步其实也很重要,因为算法并不是无穷无尽的,必须要终止.例如二分,终止条件非常重要.

算法导论基础(第一~五章)

插入排序 最好情况输入数组开始时候就是满足要求的排好序的,时间代价为θ(n): 最坏情况输入数组是按逆序排序的,时间代价为θ(n^2). 归并排序 归并排序采用了算法设计中的分治法,分治法的思想是将原问题分解成n个规模较小而结构与原问题相似的小问题,递归的解决这些子问题,然后再去合并其结果,得到原问题的解. 分治模式在每一层递归上有三个步骤: 分解(divide):将原问题分解成一系列子问题. 解决(conquer):递归地解答各子问题,若子问题足够小,则直接求解. 合并(combine):将子

MIT算法导论——第四讲.Quicksort

本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解.(http://v.163.com/special/opencourse/algorithms.html) 第四节-------快速排序 Quicksort 这节课的主要内容分为两部分,一部分是介绍快速排序算法,分析其在最好.最坏以及最好最差

MIT算法导论——第三讲.The Divide-and-Conquer

本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解.(http://v.163.com/special/opencourse/algorithms.html) 第三节-------分治法 The Divide-and-Conquer 这节课的主要内容是介绍分治法的思想,以及一些应用分治法思想的

MIT算法导论——第二讲.Solving Recurrence

本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解.(http://v.163.com/special/opencourse/algorithms.html) 第二节-------渐近符号.递归及解法 Solving Recurrence 第二节课的内容比较偏数学化,没有算法方面的知识.但尽管