《数据结构与算法》第一章 绪论
· 2 min read
程序开发过程
程序开发就是根据面对的问题,最终得到一个可以解决问题的程序的工作过程。
-
分析阶段:弄清问题
-
设计阶段:设计解决问题的计算过程模型
计算中处理的「数据」
-
求解问题的计算方法「算法」
-
编码阶段
-
检查编译即阶段
-
测试/调试阶段
算法
三个基本概念
-
问题:一个问题W是需要解决的一个具体需求,描述的是一些列类似问题的集合,例如判断任一个正整数N是否为素数。问题W显示其所有实例的共性。
-
问题实例:问题W的一个实例w是该问题的一个具体例子,通常通过一组具体的参数设定。例如断定1013是否为素数。
-
算法:解决问题W的一个算法A,是对一种计算过程的严格描述。对W的任何一个实例w,实施算法A描述的计算过程,就能得到w的解。例如,一个判断素数的算法应该能给出1013是否为素数的判断,也能判断其他正整数是否为素数。
算法的性质
-
有穷性
-
能行性
-
确定性
-
终止性
-
输入/输出
算法设计模式
-
枚举法
-
贪心法
-
回溯发(搜索法)
-
动态规划法
-
分支界限法
典型数据结构
-
集合结构
-
序列结构
-
层次结构
-
树形结构
-
图结构
Python对象与数据结构
Python语言的变量存储是引用语义的,并且其实现过程是基于一套精心设计的的链接结构。 C语言是值语义,链接结构的另一种结构叫连续结构。
想要高效使用Python,需要关注两个方面的问题:
-
人们经常需要自己设计一些数据结构,这是需要考虑实现的效率问题,需要对构造的数据结构的基本技术有所了解。
-
使用语言本身踢狗的各种高级结构「list、dict等」,也需要对这些结构的基本性质,以及实现它们的基本原理有准确理解,才能正确有效地使用它们。
Pyhton 的几个标准数据类型
-
List 表
-
tuple 元组
-
dict 字典
