zoukankan      html  css  js  c++  java
  • 数据结构学什么?

    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如何学习数据结构?

      • 多思考
      • 多上机
    写在后面:

    1. 子曰:「学而不思则罔,思而不学则殆」。
    2. 站点地图
    2. 本作品作者为 Lshare,采用知识共享署名 4.0 国际许可协议进行许可。
  • 相关阅读:
    sp_executesql 带输出参数的 EXEC 动态执行 (z)
    查端口是否被占用 DOS 命令netstat(Z)
    MS SQL处理树型结构数据 将子节点记录的各项字段值累加赋值给其父节点
    lazarus unidac使用注意事项
    UNIDAC在arm linux运行出错的解决方法
    [转]为Linux下的Lazarus添加中文输入支持
    银河麒麟(aarch64)安装Lazarus步骤
    raspberry 添加拼音五笔输入法
    lazarus跨平台编译步骤
    拷贝构造函数与赋值操作符的具体实现 【转】参考度4.5星
  • 原文地址:https://www.cnblogs.com/lshare/p/4641613.html
Copyright © 2011-2022 走看看