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