数据结构学习心得系列(一)

本博文意在巩固基础知识,高手请绕过。

 

数据结构(data structure):数据元素和数据元素关系的集合

数据结构包括逻辑结构和物理结构两个层次。

  逻辑结构

    数据的逻辑结构有两个要素:数据元素、关系

    数据逻辑结构层次关系图

      数据结构学习心得系列(一)_第1张图片

  物理结构

    物理结构又叫存储结构,存储结构在计算机中主要分两中基本的存储结构:顺序存储结构和联是存储结构。

    顺序存储结构:借助元素在存储器中的相对位置来表示数据元素间的逻辑关系,数据元素存放的地址是连续的;

    链式存储结构:借助指示元素存储地址的指针表示数据元素间的逻辑关系,数据元素存放的地址是否连续没有要求。

    在C语言中,用一维数组表示顺序存储结构;用结构体类型表示链式存储结构。

数据的逻辑结构与存储结构密切相关

    算法设计——〉逻辑结构

    算法实现——〉存储结构

算法

  算法:解决某一特定问题的具体步骤的描述,是指令的有限序列

  算法特性:

    有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

    确定性:算法中每一条指令必须有确切的含义,不存在二义性。

    可行性: 一个算法是能行的。

    输入: 一个算法有零个或多个输入。

    输出: 一个算法有一个或多个输出。

时间复杂度:

  基本操作重复执行的次数的阶数 T(n)=O(f(n))

    “O”的定义: 若f(n)是正整数n的一个函数,则 O(f(n))表示$ M,使得当≥ n0时,| f(n) | ≤ M | f(n0) | 

  例如求下面的算法的时间复杂度:

    for(i=2;i<=n;++i)

       for(j=2;j<=i-1;++j)

         {++x; a[i,j]=x; }

    语句频度为:  1+2+3++n-2=(1+n-2) ×(n-2)/2 =(n-1)(n-2)/2 =n2-3n+2

     所以时间复杂度为O(n2),即此算法的时间复杂度为平方阶。

空间复杂度:S(n)=O(f(n))

  n为问题的规模(或大小)

 

转载于:https://www.cnblogs.com/spilledlight/p/4975797.html

你可能感兴趣的:(数据结构学习心得系列(一))