数据结构学什么?

0X00数据结构

1.定义

数据结构是一门讨论“描述现实世界实体的数据模型(通常为非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。

2.几个概念

  • 数据:描述客观事物的数和字符的集合;
  • 数据元素:即一条记录,是数据的基本单位;
  • 数据项:即字段或域,具有独立含义的最小数据单位;
  • 数据对象:性质相同的数据元素的集合,数据的子集;
  • 数据结构:所有数据元素以及数据元素之间的关系。

我的理解:

展示

3.研究范围

  • 数据的逻辑结构:数据元素间的逻辑关系 
    • 集合
    • 线性结构
    • 树形结构
    • 图形结构
  • 数据的存储结构:数据元素及其关系在计算机中的存储方式 
    • 顺序存储结构
    • 链式存储结构
    • 索引存储结构
    • 散列(哈希)存储结构
  • 数据的运算

4.描述:二元组

B=(D,R) 
其中,B是一种数据结构,由数据元素的集合D和D上的二元关系的集合R组成。

0X01算法

1.算法是什么?

算法是在具体的存储结构上实现某个抽象运算,由控制结构(顺序、分支和循环)和原操作(对固有数据类型的操作,视为算法基本运算)构成。

算法的5个特性:

  1. 有穷性
  2. 确定性
  3. 可行性
  4. 有输入
  5. 有输出

2.算法的描述

  1. 语言方式
  2. 图形方式
  3. 表格方式

3.算法分析

  1. 算法设计的目标

    • 正确性
    • 可使用性
    • 可读性
    • 健壮性
    • 高效率与低存储量需求
  2. 算法的效率分析

    • 事后统计法
    • 事前分析估算法

时间复杂度:一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记作T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。算法中的基本运算(最深层循环内的语句)的频度与T(n)同数量级,所以通常釆用算法中基本运算的频度 f(n)来分析算法的时间复杂度。因此,算法的时间复杂度也记为: 
T(n)=O(f(n))

  1. 算法存储空间分析

空间复杂度:对一个算法在运行过程中(辅助变量)临时占用的存储空间大小的量度,一般作为问题规模n的函数——S(n)=O(g(n))。

0X02数据结构学什么?

  1. 逻辑结构 
    • 线性结构(线性表、栈、队列、串、数组、广义表)
    • 树形结构(树、二叉树)
    • 图形结构(图)
  2. 算法(递归、查找、内排序、外排序)
  3. 存储结构(文件)

0X03如何学习数据结构?

    • 多思考
    • 多上机
posted @ 2015-07-12 21:50  東籬老農  阅读(560)  评论(0编辑  收藏  举报