第一节-数据结构

来源:互联网 发布:广州锋泽网络垃圾 编辑:程序博客网 时间:2024/06/10 08:41

    之前对数据结构的了解真的很浅显,虽然对我这种小白来说也用不到什么高级的算法,采用什么样的数据结构。但是,在立志前往IT前沿的道路上,我的的确确该做些改变了!

一.数据

Q1:数据是什么?

A1:所有能输入到计算机中且能被计算机程序处理的符号的总称。

PS:数据对象是性质相同的数据元素集合,是数据的子集。
数据元素又可以由若干个数据项组成。

eg:图书馆的所有书籍就是一个数据对象,而每一本书都是一个数据元素,每一个数据元素都有好多数据项组成(名称、类别、出版社、作者等等)

Q2:那么什么是数据结构呢?

A2:简单来说就是有特定关系的数据元素的集合。

PS:

4类基本结构

1.线性结构;
2.树形结构;
3.图形结构;
4.集合;

数据结构是一个二元组 Data Structure = (D,S)
– D是数据元素的有限集
– S是D上关系的有限集

数据元素之间的关系有两种表示方法:

1.顺序存储;
2.链式存储;

二.数据类型

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

三.抽象数据类型

一个数学模型以及定义在该模型上的一组操作

三元组表示:(D,S,P)

–D:数据对象
–S:D上的关系集
–P:对D的基本操作集


1.3 抽象数据类型的表示和实现

详情见《数据结构》P9-P13


伪代码—–以 类C 为例;


1.4 算法

Character :

1.无死循环
2.无二义性
3.可行性
4.输入
5.输出

Brilliant Algorithm:

  1. 正确性 –测试人员要比开发者多
  2. 可读性 –要求一目了然
  3. 健壮性 –可以当作可移植性,不同环境下都可正确运行
  4. 效率与第存储量要求 –属于数据结构的范畴
    即高速低存储

算法的描述工具

  1. 自然语言(太粗)
  2. 高级语言(太细)
  3. 伪代码指令(具体见1.3算法的描述工具)–点下面的1.3即可跳转

    • 一数据
        • 4类基本结构
    • 二数据类型
      • 数据类型是一个值的集合和定义在这个值集上的一组操作的总称
    • 三抽象数据类型
    • 三元组表示DSP
  • 3 抽象数据类型的表示和实现
      • 详情见数据结构P9-P13
    • 伪代码以 类C 为例
  • 4 算法
      • Character
      • Brilliant Algorithm
      • 算法的描述工具
      • 算法的效率评价
        • 时间复杂度
        • 空间复杂度

算法的效率评价

时间复杂度

基本操作的重复执行次数是n 的某个函数f(n)

T(n)=O(f(n))

PS:

1.可以选择一种基本操作进行讨论;
2.只需选择次数最高的项,并去除系数即可;

空间复杂度

包括了显式隐式

        隐式:递归所用的工作栈
0 0
原创粉丝点击