zoukankan      html  css  js  c++  java
  • 数据结构的基本概念

    数据元素:是组成数据的、有一定意义的基本单位。在计算机中通常作为总体处理。也被称为记录。


    数据项:一个数据元素能够有若干个数据项组成。 数据项是数据不可切割的最小单位。


    数据对象:是性质同样的数据元素的集合。是数据的子集。


    结构:结构是指各个组成部分相互搭配的排列的方式。不容数据元素之间不是独立的。而是存在特定关系,我们将这些特定关系的称为结构。


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




    逻辑结构:是指数据对象中数据元素之间的相互关系。
    分为下面四种:
    1、集合结构: 集合结构的数据元素除了通数据一个集合外,它们之间没有其它关系。

    各个数据元素是“平等”的。他们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似数学中的集合。
    2、线性结构:线性结构中的数据元素之间的一对一的关系。
    3、树形结构:树形结构中的数据元素之间存在一种一对多的层次关系
    4、图形结构:图形结构的数据元素是多对多的关系。






    物理结构:(存储结构)指数据的逻辑结构在计算机中的存储形式。存储器主要是针对内存而言,像硬盘、软盘、光盘等外部存储器的数据组织通经常使用文件结构描写叙述。
    数据的存储元素直接按的逻辑关系。是实现物理结构的重点和难点。


    数据元素的存储结构形式有两种:顺序存储和链式存储。


    1、顺序存储结构:是把数据元素存放在地址连续的存储单元里。其数据间的逻辑关系和物理关系是一致的。
    这样的存储结构事实上非常easy。排队占位。


    2、链式存储结构:是白数据元素存放在随意的存储单元里,这组存储单元能够示连续的。也能够是不连续的。


    数据类型:是指一组性质同样的值的集合及定义在此集合上的一些操作的总称。




    在C语言中。数据类型能够分为两种类型:
    原子类型:是不能够再分解的基本类型,包含整型、实型、字符型等。
    结构类型:有若干个类型组合而成,是能够再分解的。比如,整型数组是由若干整型数据组成的。




    抽象是抽出事务具有普遍的本质


    抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。


    抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性


    抽象数据类型的标准格式:
    ADT 抽象数据类型名
    Data
    数据元素之间逻辑关系的定义
    Operation
    操作1
    初始条件
    操作结果描写叙述
    操作2
    .......
    操作n
    ........
    endADT







    算法
    算法是解决特定问题求解步骤的描写叙述。在计算机中表现为指令的有限序列,而且每条指令表示一个或多个操作。


    算法有5个基本特性:输入、输出、有穷性、确定性和可行性。




    算法具有零个或多个输入。算法至少有一个或多个输出。
    有穷性:指算法在运行有限的步骤之后,自己主动结束而不会出现无限循环,而且每个步骤在可接受的时间内完毕。


    确定性:算法的每一步骤都具有确定的含义。不会出现二义性。


    可运行性:算法的每一步都必须是可行的,也就是说。每一步都可以通过有限次数完毕。




    正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、可以得到问题的正确答案。大体可以分为下面四个部分:
    1、算法程序的语法没有错误
    2、算法对于合法的输入数据可以产生满足要求的输结果。
    3、算法程序对于非法的输入数据可以得出满足规格说明的结果
    4、算法程序对于精心选择的,甚至刁难的測试数据都有满足要求的输出结果。


    可读性:算法设计的还有一个目的是为了便于阅读、理解和交流
    健壮性:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。
    时间效率高和存储量低:




    算法效率的度量方法:
      事后统计方法:这样的方法主要是通过设计好的測试程序和数据。利用计算机计时器对不同算法编制的程序的执行时间进行比較。从而确定算法效率的高低。 这样的的缺陷:
    1、必须根据算法事先编制好程序。这通常须要花费大量的时间和精力。
    2、时间的比較依赖于计算机的硬件和软件等环境因素,有时会掩盖算法本身的优劣。
    3、算法的測试数据设计相当困难,而且程序的执行时间往往还与測试数据的规模有非常大关系。效率高的算法在小的測试数据面前往往得不到体现。






    事前分析估算方法:在计算机程序编制前。根据统计方法对算法进行估算
    1、算法採用的策略、方法
    2、编译产生的代码质量
    3、问题的输入规模
    4、机器运行指令的速度




    推断某个算法。随着n的增大,他会越来越优于还有一算法,或者越来越差于还有一算法。


    最坏情况执行时间是一种保证,那就是执行时间将不会再坏了。在应用中,这是一种最重要的需求。通常,除非特别的指定,我们提到的执行时间都是最坏情况的执行时间。




    平均执行时间是全部情况中最有意义的。由于它是期望的执行时间。
    一般在没有特殊说明的情况下。都是指最坏时间复杂度。






    算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:S(n)=O(f(n)),当中。你为问题的规模,f(n)为语句关于n所占存储空间的函数。




    线性表
    零个或多个数据元素的有限序列

  • 相关阅读:
    HTML大文件上传(博客迁移)
    微信小程序初探
    基于NodeJS微信公众号
    基于NodeJS的秘室聊天室
    CSS3 值得称赞新特性
    CAS FOR WINDOW ACTIVE DIRECTORY SSO单点登录
    IOS学习之-私人通讯录
    android 模拟2048
    使用ctypes在Python中调用C++动态库
    [Leetcode] Longest Palindromic Subsequence
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5331645.html
Copyright © 2011-2022 走看看