• 数据结构-概述


    概述

    数据结构是什么?

    • 数据结构是一门研究组织数据方式的学科,有了编程语言也就有了数据结构。

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

    数据结构的起源

    早期人们都把计算机理解为数值计算工具,就是感觉计算机当然是用来计算的,所以计算机解决问题,应该是先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好地处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

    1968年

    《计算机程序设计艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。

    1968年

    数据结构作为一门独立的课程,在计算机科学的学位课程中开始出现。计算机相关专业的学生开始学习《数据结构》。

    70年代初

    出现大型程序,软件相对独立,结构程序设计成为程序设计方法学的主要内容,人们越来越重视“数据结构”,

    认为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。可见,数据结构在程序设计当中占据了重要的地位。

    基本概念和术语

    1.数据:描述客观事物的符号,能够输入到计算机中,被计算机识别并操作

    数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

    • 对于整型、实型等数值类型,可以进行数值计算
    • 对于字符数据类型,就需要进行非数值的处理
    • 对于声音、图像、视频等其实是可以通过编码的手段变成字符数据来处理的

    2.数据元素:是组成数据的、有一定意义的基本单位,在计算机中统称作为整体处理(也称为记录)

    3.数据项:数据不可分割的最小单位

    在数据结构这门课程中,我们把数据项定义为最小单位,是有助于我们更好地解决问题。所以,记住了,数据项是数据的最小单位。

    但真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。

    就像我们讨论一部电影时,是讨论这部电影角色这样的“数据元素”,而不是针对这个角色的姓名或者年龄这样的“数据项”去研究分析。

    4.数据对象:性质相同的数据元素的集合,是数据的子集

    在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况下,我们都将数据对象简称为数据。

    数据结构与算法的关系?

    数据结构是算法的基础。

    程序 = 数据结构 + 算法

    数据结构分为两大类

    线性结构

    非线性结构

    • 散列表

    线性结构 是最常用的数据结构

    • 特点是数据元素之间 存在一对一的线性关系

      • 顺序储存结构(数组/顺序表)
      • 链式储存结构(链表)

    十大常用算法

    1. 二分查找(非递归)
    2. 分治算法
    3. 动态规划
    4. 贪心算法
    5. KMP算法
    6. 马踏棋盘算法
    7. 普里姆算法
    8. 迪杰斯特拉算法
    9. 佛洛伊算法
    10. 克鲁斯卡尔算法

    本系列笔记主要按尚硅谷教程的讲解顺序,使用Java代码实现各种数据结构,同时参考《大话数据结构》一些理论知识。

  • 相关阅读:
    Flask之model以及缓存
    面向对象设计原则
    【二】、UML基础知识——图图解乾坤
    在大学拼学业,搞副业,我也曾迷茫,但我一直在路上
    vsftpd简介和ftpserver在win10上的下载及安装过程
    使用IDEA详解Spring中依赖注入的类型
    多么痛的领悟——计算机组成原理第一讲
    Java 发展简史:初生遇低谷,崛起于互联网
    写公众号一个月关注量破900,聊聊我的感受
    用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)
  • 原文地址:https://www.cnblogs.com/1101-/p/13219462.html
Copyright © 2020-2023  润新知