(附思维导图)数据结构(邓俊辉)清华大学-第一章-绪论
2018-03-21 17:10
513 查看
©版权声明:本文为博主原创文章,未经博主允许不得转载。
首先,附上第一章的思维导图:
目标:高效、低耗
计算机是什么?
计算过程中所允许的工具。
计算=信息处理
借助某种工具,遵照一定规则,以明确而机械的程序进行
算法的有穷性
对不同DSA进行描述
划分等价类
最坏性能
O(1)
常数,有一些特例,不一定不含循环(logn几乎是常数),不一定不含分支转向(分支转向不可得到的地方),不一定不能有递归调用。
O(logn)
对数,底数无所谓,常数次幂无所谓;对数多项式,ploy-log function,取高阶。
O(n^x)
多项式(polynomial function)
线性(linear function):所有O(n)类函数
效率通常认为可令人满意
O(2^n)
intractable,难解问题,无效算法。
O,上界,覆盖;omiga,下界。
问题描述:
S包含n个正整数,sum S=2m
S是否有子集T,满足sum T=m?
实际例子:
美国大选,各自洲,是否可能选票相同的情况。
**定理 **2-Subset is NP-complete
就目前的计算模型而言,不存在可在多项式时间内回答此问题的算法。
上面是书中的介绍,我认为递归是一种解决问题的方式,直接得到问题的通解不容易,但是得到问题的递推公式(即利用n-1规模的解来求n规模的问题)和平凡解很简单,于是让计算机来计算整个调用过程,这种算法策略,就叫做递归。
还有一个比较类似的算法策略叫做迭代,也是一个重复反馈的过程,但是与递归不同的地方在于,迭代是重复进行同一个运算,来逼近所需目标,而不是减小问题的规模来求解的思路,因此不需要用内存保存n-1、n-2……3、2、1规模的解。所以一般使用迭代来解决问题,可以节省空间成本,但是相应的,对程序员来说,会比递归的方法要难想到一点。
声明:本文部分图片引用自“清华大学-学堂在线-数据结构课程”、《数据结构(C语言版)邓俊辉-清华大学》
首先,附上第一章的思维导图:
1 计算机与算法
1.1 计算
对象:规律、技巧目标:高效、低耗
1.2 伸缩计算机
古埃及利用勾股定理,过某点做某条指定直线的垂线。计算机是什么?
计算过程中所允许的工具。
计算=信息处理
借助某种工具,遵照一定规则,以明确而机械的程序进行
1.3 有穷性文本
Hailstone序列的定义算法的有穷性
1.4 好算法
正确、健壮、可读、效率(运行时间,所需内存空间,所需资源)2 计算模型
2.1 问题规模
DSA:DATA STRUCTURE & ARTHITECHTURE对不同DSA进行描述
划分等价类
最坏性能
2.2 理想模型
图灵机模型3 大O记号
考察成本的增长趋势O(1)
常数,有一些特例,不一定不含循环(logn几乎是常数),不一定不含分支转向(分支转向不可得到的地方),不一定不能有递归调用。
O(logn)
对数,底数无所谓,常数次幂无所谓;对数多项式,ploy-log function,取高阶。
O(n^x)
多项式(polynomial function)
线性(linear function):所有O(n)类函数
效率通常认为可令人满意
O(2^n)
intractable,难解问题,无效算法。
O,上界,覆盖;omiga,下界。
3.1 2-subset
难解问题,化为有效算法的过程可能是很难的。问题描述:
S包含n个正整数,sum S=2m
S是否有子集T,满足sum T=m?
实际例子:
美国大选,各自洲,是否可能选票相同的情况。
**定理 **2-Subset is NP-complete
就目前的计算模型而言,不存在可在多项式时间内回答此问题的算法。
4 递归
是一种减而治之的策略,递归每深入一层,带求解问题的规模就缩减为一个常数,直至最终蜕化为平凡的简单问题。上面是书中的介绍,我认为递归是一种解决问题的方式,直接得到问题的通解不容易,但是得到问题的递推公式(即利用n-1规模的解来求n规模的问题)和平凡解很简单,于是让计算机来计算整个调用过程,这种算法策略,就叫做递归。
还有一个比较类似的算法策略叫做迭代,也是一个重复反馈的过程,但是与递归不同的地方在于,迭代是重复进行同一个运算,来逼近所需目标,而不是减小问题的规模来求解的思路,因此不需要用内存保存n-1、n-2……3、2、1规模的解。所以一般使用迭代来解决问题,可以节省空间成本,但是相应的,对程序员来说,会比递归的方法要难想到一点。
声明:本文部分图片引用自“清华大学-学堂在线-数据结构课程”、《数据结构(C语言版)邓俊辉-清华大学》
相关文章推荐
- (附思维导图)数据结构(邓俊辉)清华大学-第四章-栈与队列
- (附思维导图)数据结构(邓俊辉)清华大学-第五章-二叉树
- (附思维导图)数据结构(邓俊辉)清华大学-第三章-向量
- (附思维导图)数据结构(邓俊辉)清华大学-第二章-向量
- (附思维导图)数据结构(邓俊辉)清华大学-第六章-图
- (附思维导图)数据结构(邓俊辉)清华大学-第七章-搜索树
- 数据结构(c++版)第一章绪论知识点总结图(物联网工程1131-10)
- 数据结构(C++版)第一章 绪论 学习笔记
- 数据结构复习——第一章:绪论
- 数据结构(第二版,C语言版)严蔚敏编著 第一章绪论中的错误
- 数据结构(c++版)(第2版)第一章:绪论的知识点总结图,制作者:物联1131-22
- 数据结构终结版总结----第一章 绪论
- 数据——结构绪论(第一章)
- 数据结构——第一章 绪论
- 数据结构(C++版)第一章 绪论
- 数据结构 第一章绪论
- 数据结构(c++版)(第2版)第一章:绪论的知识点总结图,制作者:物联网1131-18 .
- 数据结构笔记——第一章 绪论
- 数据结构期末复习第一章绪论
- 数据结构与程序设计 第一章 编程原则