数据结构与算法python(一)引言

1.程序设计解决的两个问题:

(1)处理实际问题中的各种对象及其相互关系,即映射到python能处理的某种结构

(2)实际问题的求解过程映射到一个计算过程,用程序实现该过程

2.解决一个实际问题而开发程序的工作氛围四个阶段:

(1)分析:弄清楚要求解的问题,给出尽可能严格的描述

(2)设计:信息到数据表示的映射,规划求解过程等

(3)编码:使用python编程

(4)测试与维护:确认得到的程序能解决问题,以及为满足某些实际目标或需要而修改程序,扩充功能等

3.问题求解实例:

(1)分析,构造问题的求解模型:将路口交叉分组问题抽象为节点分组问题,

再等价为地图着色问题

(2)考虑求解算法:法1,穷举法,逐个枚举出所有可能分组,但需指数时间

法2,贪心法






4.算法

对于一个给定问题,用某种严格的方式描述一个求解过程,对该问题的每个势力,该过程都能给出解,

这个描述就是解决该问题的一个算法。

(1)一个问题,是具有相同性质的实例的集合

(2)可能用一个算法统一地求解一个问题的(所有)实例,为此需要:

设计问题实例的表示方法,设计一个求解算法,使用算法就是把问题实例送给它,得到相应的解。

5.算法是问题求解过程的精确描述,具有:

(1)有穷性:描述的有穷性,由有限条“指令”/“语句”构成

(2)能行性:指令(语句)简单明确,科技鞋执行

(3)确定性:确定性算法

(4)终止性:行为的有穷性

(5)输入、输出

6.算法的描述:

自然语言、严格的形式化记法、伪代码

7.程序:是算法的实现(具体编程语言的描述)

8.算法的一些核心通用想法可称为算法设计模式,常见:

贪心法、分治法、回溯法(搜索法)、动态规划法、分支界限法

9.算法的度量

(1)时间代价:T(n)

(2)空间代价:S(n)

(3)问题规模:n,问题实例基于某种规模度量,反应实例大小,如:图像大小

10.大    O 记法——算法的复杂性,表示上界,还可考虑下界、上确界、下确界





猜你喜欢

转载自blog.csdn.net/shuwenting/article/details/79707300