《数据结构与算法》第一章 绪论

程序开发过程

程序开发就是根据面对的问题,最终得到一个可以解决问题的程序的工作过程。

  1. 分析阶段:弄清问题
  2. 设计阶段:设计解决问题的计算过程模型
    • 计算中处理的「数据」
    • 求解问题的计算方法「算法」
  3. 编码阶段
  4. 检查编译即阶段
  5. 测试/调试阶段

算法

三个基本概念
  • 问题:一个问题W是需要解决的一个具体需求,描述的是一些列类似问题的集合,例如判断任一个正整数N是否为素数。问题W显示其所有实例的共性
  • 问题实例:问题W的一个实例w是该问题的一个具体例子,通常通过一组具体的参数设定。例如断定1013是否为素数。
  • 算法:解决问题W的一个算法A,是对一种计算过程的严格描述。对W的任何一个实例w,实施算法A描述的计算过程,就能得到w的解。例如,一个判断素数的算法应该能给出1013是否为素数的判断,也能判断其他正整数是否为素数。

算法的性质

  • 有穷性
  • 能行性
  • 确定性
  • 终止性
  • 输入/输出

算法设计模式

  • 枚举法
  • 贪心法
  • 回溯发(搜索法)
  • 动态规划法
  • 分支界限法

 

 典型数据结构

  • 集合结构
  • 序列结构
  • 层次结构
  • 树形结构
  • 图结构

Python对象与数据结构

Python语言的变量存储是引用语义的,并且其实现过程是基于一套精心设计的的链接结构
C语言是值语义,链接结构的另一种结构叫连续结构

想要高效使用Python,需要关注两个方面的问题:
  • 人们经常需要自己设计一些数据结构,这是需要考虑实现的效率问题,需要对构造的数据结构的基本技术有所了解。
  • 使用语言本身踢狗的各种高级结构「list、dict等」,也需要对这些结构的基本性质,以及实现它们的基本原理有准确理解,才能正确有效地使用它们。
Pyhton 的几个标准数据类型
  • List 表
  • tuple 元组
  • dict 字典

 


欢迎大家关顾我的Facebook主页「Y Life Book」以及我的公众微信号「不点语书」,我们下期见。

Leave a Comment

Your email address will not be published. Required fields are marked *