Skip to main content

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

· 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 字典