DataStructure part1 基础概念

一、基础知识

1、基本概念

数据、数据元素、数据项、数据对象、数据结构

2、逻辑结构和物理结构

逻辑结构:集合结构、线性结构(一对一)、树形结构(一对多)、图形结构(多对多)

物理结构(数据的逻辑结构在计算机中的存储形式):顺序存储结构、链式存储结构

3、数据类型

原子类型:整型、实型、字符型等。(不可再分解)

结构类型:数组等(由若干个类型组合而成,可以再分解)

4、抽象数据类型(ADT):指一个数学模型及定义在该模型上的一组操作(Data+Operation)

 

二、算法

1、算法特性:输入(0+)、输出(1+)、有穷性(有限步骤)、确定性(无二义性)、可行性(每一步可行)

2、算法设计要求:正确性、可读性、健壮性、时间效率高和存储量低

3、函数的渐进增长:给定两个函数f(n)和g(n),如果存在整数N,使得对于所有n>N,f(n)总是大于g(n),那么我们说f(n)的增长渐进快于g(n)

4、算法时间复杂度:T(n)=O(f(n))。

  表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐进时间复杂度,简称时间复杂度。f(n)为问题规模n的某个函数

推导大O阶方法:常熟均为1、只保留最高阶项、最高阶项的系数改为1

常数阶O(1)、线性阶O(n)、对数阶O(logN)、平方阶O(n^2)、nlogn阶

所消耗时间大小依次为:O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)

5、算法的空间复杂度:S(n)=O(f(n))通过计算算法所需的存储空间来实现

  若输入数据所占空间只取决于问题本身,与算法无关,则只需分析算法在计算时所需的辅助单元。若算法在执行时所需的辅助空间相对于输入数据量而言是个常数,则称此算法为原地工作,空间复杂度为O(1)

 

posted @ 2019-06-27 15:44  千枫z  阅读(168)  评论(0编辑  收藏  举报