• 数据的逻辑结构与存储结构的基本概念(数据结构巩固一)


    数据的逻辑结构与存储结构的基本概念

    逻辑结构分为四种类型

    • 集合结构:元素同属一个集合,元素之间没有什么关系。
    • 线性结构: 典型的有顺序表,链表,栈和队列。 元素之间是一对一关系。
    • 树形结构:二叉树,元素之间是一对多关系
    • 图形结构:有向图与无向图。元素之间是多对多的关系。

    物理结构(又称存储结构)分为两类

    •   顺序结构:元素在连续的存储单元中,物理顺序与逻辑顺序是一致的,比如数组。优点是访问速度快,缺点是插入和删除操作耗时久。
    •   链式结构:元素可以在不连续的存储单元中,通过指针指向前驱节点或者后驱节点,有点是插入和删除都很快。

    算法的定义、基本性质以及算法分析的基本概念,包括采用大O形式表示时间复杂度和空间复杂度

      • 算法的定义:是为了求解问题给出的有限指令序列,每条指令表示一个或多个操作。
      • 算法的基本性质:
        • 输入:一个算法有0个或多个输入,这些输入取自某个特定对象的集合。
        • 输出:一个算法有一个或多个输出,这些输出是同输入具有某种特定关系的量
        • 确定性:算法中每一条指令必须有确切的含义,不具有二义性
        • 可行性:算法中描述的操作都可以用已经实现的运算执行有限次来实现。
        • 有穷性:一个算法必须能够在执行又穷步骤后结束,并且每一步都能在又穷时间内完成。

    算法分析

        :算法运行所需要的时间称为时间复杂性;算法运行所需要的辅助空间称为空间复杂性
        • 事前估计法:时间按复杂度估计。  抽象过程如下:算法运行时间=每条语句执行时间之和-》每条语句的执行次数之和-》基本语句的执行次数-》基本语句执行次数的数量级-》大O号表示。常见的时间复杂度如下Ο(1)<Ο(log₂n)<Ο(n)<Ο(nlog₂n)<Ο(n²)<Ο(n³)<…<Ο(2ⁿ)<Ο(n!)
    描述 增长的数量级 典型代码 说明 举例
    常数级别 Ο(1) a=b+c 普通语句 将两个数相加
    对数级别 Ο(log₂n) 二分查找 二分查找 二分查找
    线性级别 Ο(n)

    for(int i=0;i<N;i++){

    }

    循环 找出最大元素
    线性对数级别 Ο(nlog₂n) 分治 归并排序
    平方级别 Ο(n²)

    for(int i=0;i<N;i++){

     for(int j=0;j<N;j++){

    }

    }

    双层循环 检查所有元素对
    立方级别 Ο(n³) 代码省略 三层循环 检查所有三元组
    指数级别 Ο(2ⁿ)   穷举查找 检查所有子集
      • 事后统计法:程序运行测试。 比如在调用某个方法的前后打印当前时间,以此来判断该方法执行耗时,缺点是需要编写特定程序,且硬件环境影响测试结果(比如服务器与pc机器性能不同,同样的算法在这2者之间运行的时间是不一样的)
  • 相关阅读:
    如何实现Android欢迎页
    创建webapi的简单步骤
    IOS里Request的斗争(上)
    预告:关于接下来的部分,都是番外。
    利用Selenium制作python数据抓取,以及对Selenium资源介绍
    利用openpyxl来读取Excel数据
    在pycharm下快速添加插件
    C# 分布式缓存服务器方案
    2014中国省市数据库
    FormsAuthentication 登录兼容 IE11 保存cookie
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/12925078.html
Copyright © 2020-2023  润新知