美文网首页
数据结构-基本概念和时空复杂度

数据结构-基本概念和时空复杂度

作者: 泽泽馥泽泽 | 来源:发表于2018-09-29 18:54 被阅读0次

归纳

  • 研究数据元素之间的客观联系(逻辑结构)
  • 研究具有某种逻辑关系的数据在计算机存储器(存储结构)
  • 研究如何在数据的各种关系(逻辑关系和物理关系)的基础上对数据实施一系列有效的基本操作(算法)
  • 分析算法的时间复杂度和空间复杂度

一、概述

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

数据结构的定义和一些基础概念

数据结构的定义:数据元素之间的联系称为结构,数据结构就是具有结构的数据元素合集。

数据结构为二元组:DataStructure=(D,R)

D:Data,数据元素的有限合集,某一个数据对象

R:Relation,Data的关系合集

逻辑结构

数据元素之间具有的逻辑关系(结构)

线性关系:如线性表,数组,堆栈,队列,串,文件等

非线性关系:树,二叉树,图,集合等

存储结构

具有某种逻辑结构的数据,在计算机存储器中的存储方式(存储映像2)

  • 顺序存储结构:用一组地址连续的存储单元依次存放数据元素,
    数据元素之间的逻辑关系通过元素地址直接反映。

  • 链式存储结构:用一组地址任意的存储单元依次存放数据元素,数据元素之间的逻辑关系通过指针间接的反映。

  • 索引存储结构:利用数据元素索引关系来确定数据元素的存储位置,由数据元素本身与索引两部分组成

特点:诸如查找,插入,删除等操作的时间效率较高,但是存储空间开销大

  • 散列存储结构:(哈希)通过事先准备好的散列函数关系与处理冲突的方法来确定元素的存储位置

特点:诸如查找、删除和插入的时间效率较高,主要缺点是确定好的散列关系比较困难,即好的hash function

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

算法的定义

算法的定义:算法是用于解决某个特定课题的指令集合。算法就是解决问题的方法。算法是由人们组织起来准备加以实施的一系列有限的基本步骤。

算法的性质

一个完整的算法应该满足下面五个基本性质:

  • 输入
  • 输出
  • 有穷性
  • 确定性
  • 有效性

算法分析

算法分析是指对算法质量优劣的评价。

  • 正确性
  • 时间复杂度
  • 空间复杂度
  • 其他:算法可读性,可移植性,易测试性等等

时间复杂度

一个程序在计算机中运行的时间多少与很多因素有关

  • 问题的规模
  • 编译程序功能的强弱以及所产生的机器代码质量的优劣
  • 机器执行一条指令的时间长短
  • 程序中语句的执行次数

频度统计法

以语句的执行次数的多少作为算法的时间量度的分析方法称为频度统计法

整个算法的频度是指算法中所有的语句频度之和

关于符号O的定义

当且仅当存在正数cn\_0,使得f(n) \leq cg(n)对所有
n \geq n\_0成立,则称函数f(n)g(n)同阶,或者说f(n)g(n)同一个数量级,记作

f(n)=O(g(n))

称上式为算法的时间复杂度,或者成该算法的时间复杂度为\(O(g(n))\).

其中,n为问题的规模大小的度量。

[例子:矩阵乘法]
void function(int A[][n], int B[][n], int C[][n], int n)
{
    int i,j,k;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            C[i][j] = 0;
            for(k=0;k<n;k++)
                C[i][j] = C[i][j] + A[i][k]*B[k][j];
        }
}

以上算法的时间复杂度为O(n^{3}).

常见复杂度排序

O(log\_{2}n)<O(n)<O(nlog\_{2}n)<O(n^{2})<O(n^{3})<O(2^{n})

O(1)表示算法复杂度为常量,不随我呢提规模的大小而改变

相关文章

  • 数据结构学习大纲

    第一章 绪论 数据结构基本概念数据结构基本概念算法的基本概念算法的时间复杂度与空间复杂度分析基础时间复杂度分析空间...

  • 数据结构-基本概念和时空复杂度

    归纳 研究数据元素之间的客观联系(逻辑结构) 研究具有某种逻辑关系的数据在计算机存储器(存储结构) 研究如何在数据...

  • 算法性能分析

    对于数据结构的基本概念我们不做叙述,本节重点讨论算法效率的度量。 性能分析的角度 一般我们从时间复杂度和空间复杂度...

  • 《恋上数据结构与算法一》笔记(二十)总结

    目录 复杂度 线性数据结构 树形数据结构 线性+树形数据结构 一 复杂度 时间复杂度 空间复杂度 二 线性数据结构...

  • 数据结构教程 第一课 数据结构的基本概念和术语

    本课主题:数据结构的基本概念和术语 教学目的:了解数据结构的基本概念,理解常用术语 教学重点:基本概念:数据与数据...

  • 数据结构教程 第一课 数据结构的基本概念和术语

    本课主题:数据结构的基本概念和术语 教学目的:了解数据结构的基本概念,理解常用术语 教学重点:基本概念:数据与数据...

  • 数据结构学习进度一

    一 4.23 1.学习了数据结构的基本概念和术语 2.掌握了抽象表达式 3.了解尝试掌握了算法的时间复杂度算法 4...

  • 算法复杂度

    数据结构: 数组、链表、栈、队列、二叉树、hash表、图。 空间复杂度和时间复杂度的算法 空间复杂度和时间复杂度 ...

  • 数据结构(一)时间复杂度

    简介:如果想对数据结构和算法有基本的了解和认识,那么算法复杂度是前提,算法复杂度包含时间复杂度和空间复杂度,具体概...

  • 数据结构与算法之线性表

    前言 上一篇《数据结构和算法之时间复杂度和空间复杂度》中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行...

网友评论

      本文标题:数据结构-基本概念和时空复杂度

      本文链接:https://www.haomeiwen.com/subject/fsmboftx.html