数据结构与算法Python版 (一)

数据

数据化的科学、技术、工程、商业。类似地表,宇宙,地下,高分辨率卫星,实际交通流量。数据是基础,是所有信息的来源。数据不仅限于数字,现如今包括声音,图片等等。人类进入数据主义时代,整个世界就是数据及其算法。
什么是问题–未知的事物
人们在生活、生产、学习、探索、创造过程中会遇到各种未知的食物
what问题?
why问题?
how问题?

问题解决之道
在长期发展过程中,人们把已经解决的问题逐渐表述为数学命题与模型

为什么是数学?

  • 数学具有清晰明确的符号表述体系
  • 严密确定的推理系统
  • 但正如科学不是万能的,数学也不是万能的。

Donald in Mathmagic land 。1959
能否找到一种基于有穷观点的能行方法,来判断任何一个数学命题的真假

抽象计算概念提出

  • 基于有穷观点的能行方法 由有限数量的明确有限指令构成;
  • 指令执行在有限步骤后终止;
  • 指令每次执行都总能得到卫衣结果;
  • 原则上可以有人单独采用纸笔完成,而不依靠其他辅助;
  • 每条指令可以机械地被精确执行,而不需要智慧和灵感。

图灵机Turing Machine计算模型
用机器来模拟人们用纸笔进行数学运算的过程

可以通过计算解决问题
用任何一个有限能力方法下的计算模型可以解决
what:分类问题
why:证明问题
how:过程问题 算法和相应数据结构的研究

最早的算法:欧几里得算法
辗转相除法求最大公约数 处理大数十分高效 它所需要的步骤不会超过较小数位数5倍

基于有穷观点的能行方法的可计算概念
在有限的资源内是否能解决

计算复杂性
定义一些衡量指标,对问题的难易程度进行分类,是计算复杂性理论的研究范围。

对于同一问题,有不同解决方案,解决效率也是千差万别。

对比计算复杂性 是研究问题本质 研究问题的级别 不关心问题的解决方案

算法是研究问题不在同情况下,解决效率最高的方法,怎么解决。致力于找到效率最高的方案。

何为不可能计算问题
有不少定义清晰,但无法解决的问题
停机问题:判断任何一个程序在任何一个输入情况下是否能停机。
不可计算数:几乎所有的无理数,都无法通过算法来确定任意一位是什么数字
计算之道解决问题,存在一些边界和极限。

突破计算极限
超大规模分布式计算 如seti@home从2005年开始
新型计算技术:光子计算 DNA计算 量子计算(量子力学态叠加原理)
分布式智慧–众包

突破算法的约束
积海战术 利用闲置计算力
利用新型技术

计算机科学研究什么

计算机科学主要研究的是问题、问题解决过程、以及问题的解决方案。

抽象
为了更好的处理机器相关性或独立性,引入抽象
从逻辑或者物理不同层次来看待问题

逻辑相对于物理 抽象相对于实现

算法+数据结构 = 程序

程序设计语言 需要为算法的实现提供实现的过程和数据的机制

程序设计语言均有语句对应控制结构

程序设计语言也提供最基本的数据类型来表示数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值