数据结构与算法python版|(1)概述
作者:互联网
本专栏主要基于北大的数据结构与算法python版进行整理。
课程链接
1.数据时代
信息时代就是数据的时代,数据结构与算法这门课将展示如何把数据组织起来进行有效的处理以解决问题
2.问题求解的计算之道
人们在生活中会遇到很多问题,常见问题分为分类问题,证明问题,过程问题。因为数学的推理,明确,严谨,使得数学成为解决问题的终极工具,而数学具有可检验性,也就是可以验证的,所以大数学家希尔伯特提出:能否基于有穷观点的能行方法,来判断数学命题的真假。也就是说,如果有这个方法的话,很多数学问题,可能不用人去做,而是用程序,用机械的方法去解决,而什么是基于有穷观点的能行方法呢?
- 由有限数量的有限明确指令构成
- 指令执行在有限步骤后终止
- 指令每次执行都能得到唯一结果
- 原则上可以由人单独采用纸笔完成,而不依靠其他任何辅助
- 每条指令可以机械的被执行,而不需要智慧和灵感
于是就有一些逻辑学家提出了一些满足有穷观点能行方法的数学模型,其中的数学模型,图灵机,成为现代计算机的理论基础。不过后续证明这些模型本质上都是等价的,而基于有穷观点的能行方法最终也是无法实现的,因为总有一些数学命题,其真假永远无法证明。
3.图灵机计算模型
图灵机是一种抽象计算模型,基本思想是用机器模拟人进行纸笔计算,图灵机由无限长纸带,读写头,状态寄存器,有限的控制规则构成。图灵机的状态转移函数q, X, Y, R(或L或N), p,其实就是一条指令,即在q状态下,当输入为X时,输出为Y,读写头向右®、向左(L)移动一格或不动(N),状态变为p
4.算法和计算复杂度
可通过算法流程来解决问题,同一问题有不同的方法来解决,比如在键盘上敲出“算法”两个字,可以直接敲出算法,也可以不看键盘随机敲打无数次,都可以敲出“算法”二字,很明显,后者比前者复杂的多。
5.突破计算极限
- 超大规模分布式计算
- 新的计算技术(光子计算,DNA计算,量子计算等)
- 智慧众包等
6.什么是抽象和实现
抽象是物体最本质的东西,比如说汽车,司机看到的是“逻辑”层次,方向盘等,而具体的“实现”是接口来实现,司机不需要知道汽车怎么实现对应的功能,只需要会开车就行。而什么是编程呢?编程是通过程序设计语言,将抽象的算法化为计算机可以执行的代码的过程,即算法+数据结构=程序
7.为什么要研究数据结构与算法
为了清晰高效的表达算法,在遇到一个大问题时,可以把问题分成很多个小问题,甚至把小问题分成小模块,系统的去解决一个问题。
数据抽象:ADT抽象数据类型。抽象接口,不涉及具体的实现,也涉及到了封装,可以控制算法的复杂度。ADT把逻辑和物理层次分离,这样可以定义复杂的数据模型,不需要马上去考虑如何实现。
8.python
python基础知识
标签:python,问题,算法,图灵机,计算,数据结构 来源: https://blog.csdn.net/qq_52691614/article/details/119300698