zoukankan      html  css  js  c++  java
  • 数据结构学习心得系列(一)

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

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

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

      逻辑结构

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

        数据逻辑结构层次关系图

          

      物理结构

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

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

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

        在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为问题的规模(或大小)

  • 相关阅读:
    Oracle 基本命令
    一个完整的创建用户,创建表空间,授权建表过程
    jQueryMobile之Popup
    data-theme 几种值的样式
    jQueryMobile之listview
    jQueryMobile之弹出对话框
    android EditText内嵌图片
    css 盒子模型
    kms可用激活服务器地址|kms可用激活服务器分享
    本地配置DNS服务器(MAC版)
  • 原文地址:https://www.cnblogs.com/spilledlight/p/4975797.html
Copyright © 2011-2022 走看看