一、二章(概述+算法分析)

第一章 概述

104 算法和计算复杂性

1.三个问题

what——分类问题
why——证明问题
how——过程问题(即算法、数据结构)

2.计算复杂性

(1)概念:基于有穷观点的能行方法的可计算概念1)概念:基于有穷观点的能行方法的可计算概念
(2)关心:能否在有限的资源(时间/空间)解决问题
不关心:具体要花费多少计算的步骤或者存储空间
注:有些问题即使有相应的解法,却没有什么可行性

105 突破计算极限

方式:例如分布式计算

106 抽象与现实

  1. 抽象:即从“逻辑“和”物理“两个不同的层面上去看待问题
  2. 逻辑定义接口,物理完成实现。逻辑上的接口由物理层来实现
  3. 编程是算法的一种物理实现。
    算法➕数据结构 = 程序
  4. 语言为我们提供了“过程”和“数据”,一般来说“过程”是指控制语句,“数据”指的是基本的数据类型。

107 为什么研究数据结构与算法

  1. ADT抽象数据类型
    在这里插入图片描述
    (1)用户只要关心这些数据类型能否提供可用的接口,而不必去担心这些数据类型是怎么完成和实现的。实现和操作相当于是物理层的实现,用户使用的是逻辑层的接口。
    (2)ADT是一种逻辑的描述,不涉及怎么实现,并且对数据的一些处理方法的实现隐藏起来,这就是一种“封装”,可以降低算法的复杂度。
    (3)同一个ADT可以有许多不同的物理实现,意味着是逻辑上的稳定性,物理上的多样性,逻辑稳定,物理多变。
    总结:ADT可以有多种实现,接口独立于实现,层层抽象可以降低算法的复杂度。

第二章 算法分析

201 算法分析

可以根据计算资源的消耗来判断一个算法的性能,计算资源分为空间(存储空间、内存)和时间(执行时间)。

202 大O表示法

大O表示法:O(f(n)),其中f(n)是数量级函数中随着n(问题规模)的增大而增长最快的主导部分(不带系数)。

在这里插入图片描述

205/206 python数据类型的性能

80/20原则:让80%的功能使用率只有20%,让20%的功能使用率有80%。总的来说,是让最常用的方法性能最好。
在这里插入图片描述
python数据类型时间复杂度:https://wiki.python.org/moin/TimeComplexity

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值