zoukankan      html  css  js  c++  java
  • 23) 什么是数据结构?什么是算法?

    1- 什么是数据结构

    Sartaj Sahni在他的《数据结构、算法与应用》一书中称:

    “数据结构是数据对象,以及存在于该对象的实例合组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”
    

    他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。

    Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:

    “数据结构是 ADT(抽象数据类型Abstract Data Type) 的物理实现。”
    

    大话数据结构:

    数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
    

    2- 什么是算法?

    算法是解决问题步骤的有限集合。
    

    通常用某一种计算机语言进行伪码描述。通常用时间复杂度和空间复杂度来衡量算法的优劣。

    3- 细化

    3.1- 数据

    数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
    数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
    数据项:一个数据元素可以由若干个数据项组成。
    数据对象:是性质相同的数据元素的集合,是数据的子集。

    3.2- 结构

    逻辑结构、物理结构。

    逻辑结构:是指数据对象中数据元素之间的相互关系。包括集合结构、线性结构、树形结构、图形结构。

    集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其它关系。
    线性结构:线性结构中的数据之间是一对一的关系。
    树形结构:树形结构中的数据之间存在一种一对多的层次关系。
    图形结构:图形结构的数据元素是多对多的关系。
    

    物理结构:是指数据的逻辑结构在计算机中的存储形式。顺序存储和链式存储。

    顺序存储:是把数据元素存放在地址连续的存储单元里。
    链式存储:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
    

    3.3- 算法

    算法的五大特征:输入、输出、有穷性、确定性、可行性。

    输入:零个或多个输入。
    输出:一个或多个输出。
    有穷性:有限步骤后在可接受时间内完成。
    确定性:每个步骤都有确定含义,无二义性。
    可行性:每一步都是可行的。
    算法设计要求:正确性、可读性、健壮性、时间效率高和存储低。
    正确性:有输入输出,无二义性,有正确答案。
    可读性:方便阅读。
    健壮性:输入不合法能处理
    时间效率高和存储低:时间空间复杂度越低越好。
  • 相关阅读:
    1. 单个文件下载
    16. js方法传多个参数的实例
    15. combobox、combotree获取显示值和value值方式
    38. 查看oracle表空间存放的位置(查看所有的数据库文件的存放位置)
    Vuejs 高仿饿了么外卖APP 百度云视频教程下载
    mysql 5.7 百度云网盘下载
    mysql 5.1 下载地址 百度云网盘下载
    Zookeeper学习笔记-概念介绍
    JavaScript工程师都应懂的33个概念
    IIS部署asp.net MVC 出现错误 403.14-Forbidden解决办法
  • 原文地址:https://www.cnblogs.com/lemanlai/p/12330898.html
Copyright © 2011-2022 走看看