【1904】数据结构学习笔记——基础知识

一、问题解决思路

编写程序解决问题的思路:

        1、将问题抽象成数学模型(用数据进行问题的描述);

        2、分写问题的数据量的大小和数据之间的关系;

        3、数据的存储和表现的实现方式(用什么变量描述,数组,指针,vector)和定义方式(double、int 、float)

        4、考虑数据处理时需要完成的运算(如何将函数抽象成一个函数进行实现!)

        5、编写对应的程序;

        6、Debug—>优化;

二、引言说明

  • 一般常见的数据结构:线性关系、树形结构、网状结构。(实例:图书检索,档案资料自动化、交通灯管理etc)
  • 基本定义:数据,数据元素,数据项(最基本的数据单位)、数据对象(有限/无限)
  • 数据结构:数据元素之间的关系;逻辑结构:元素之间的关系;典型:集合、线性、树形、图状;
  • Data-Structure=(D,S)
  • 典型的两种存储结构:顺序存储(存放地址连续)和链式存储(存在指针,指针表示元素之间的逻辑关系)
  • 存储结构的分类:
  • 线性结构:结构中的数据元素之间是存在一对一的关系的;
  •  

  • 抽象数据类型(ADT):ADT=(D,S,P)——D是数据对象,S是D上的关系集,P是对D的基本操作集。
  • 算法和程序是两个不同的概念。一个计算机程序是对一个算法使用某种程序设计语言的具体实现。算法必须可终止意味着不是所有的计算机程序都是算法。

  • 算法中基本操作重复执行的次数是问题规模n的某个函数,其时间量度记作 T(n)=O(f(n)),称作算法的渐近时间复杂度(Asymptotic Time complexity),简称时间复杂度。

  • 六种计算算法时间的多项式是最常用的。其关系为:

    O(1)<O(㏒n)<O(n)<O(n㏒n)<O(n2)<O(n3)
    指数时间的关系为:
    O(2^n)<O(n!)<O(n^n)

  • 空间复杂度(Space complexity) :是指算法编写成程序后,在计算机中运行时所需存储空间大小的度量。记作: S(n)=O(n)) 其中: n为问题的规模(或大小)。——一维数组a[n]: 空间复杂度 O(n);二维数组a[n][m]: 空间复杂度 O(n*m)

           

posted on 2019-04-20 11:45  HongQI鸿  阅读(131)  评论(0编辑  收藏  举报

导航