数据结构
数据之间的关系,称之为结构,总的来说就是数据结构

数据结构是数据存储的方法,算法就是数据处理的方法,通过时间复杂度(time 简单记为T(O)=O(f(n)),f(n)就是重复执行某一操作的次数)和空间复杂度(程序使用内存的大小)来判断算法的效率

通常我们学数据结构的同时也会学习算法,数据结构是数据存储的方式,而算法就是处理数据的方法,数据结构的不同就会导致算法的不同,数据结构的选择对算法效率会产生重大的影响,所以数据结构与算法紧密联系。

一个问题可能会有多种算法,我们当然会采用最好的那个算法,但是怎么判断一个问题的好坏与否呢?我们一般会通过分析它们的时间复杂度和空间复杂度来进行比较。

一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))。

在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数量级(它的同数量级有以下:1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n) = 该数量级,若 T(n)/f(n) 求极限可得到一常数c,则时间复杂度T(n) = O(f(n))。

那么什么是空间复杂度呢?一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时所需存储空间包括以下两部分:

(1)固定部分。这部分空间的大小与输入/输出的数据的个数多少、数值无关。主要包括指令空间(即代码空间)、数据空间(常量、简单变量)等所占的空间。这部分属于静态空间。

(2)可变空间。这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。这部分的空间大小与算法有关。

一个算法所需的存储空间用f(n)表示。

S(n)=O(f(n))

其中n为问题的规模,S(n)表示空间复杂度。

数据结构--基本概念相关推荐

  1. 【数据结构总结】第一章:数据结构基本概念

    [数据结构总结]第一章:数据结构基本概念 本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读 ...

  2. Python数据结构与算法(三)--数据结构的概念

    上一章我们看Python内置的模块可以测试代码的时间,有的代码执行时间短有的执行时间长,就是说效率不一样. 如果上面不明显的话,大家看下面两个方法.append() 和 insert(0) impor ...

  3. 数据结构 (一) ----- 数据结构基本概念基于数组实现线性表

    相关文章: <数据结构 (一) ----- 数据结构基本概念&基于数组实现线性表> 文章目录 数据结构基本概念 一.逻辑结构 二.存储结构 三.数据结构定义 四.数据结构的通用的几 ...

  4. 数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)

    //数据结构基本概念 #include<iostream> using namespace std;/* 数据 – 程序的操作对象,用于描述客观事物 数据的特点: 可以输入到计算机 可以被 ...

  5. 【向题看齐】408之数据结构DS概念记忆总结

    408之数据结构DS概念记忆总结 1.线性表 2.栈和队列 3.串 4.树 4.1.树的性质 4.2.二叉树的性质 4.3.满二叉树的性质 4.4.线索二叉树的性质 4.5.二叉排序树的性质 4.6. ...

  6. C语言数据结构-第一讲-数据结构基础概念-电大

    第一讲数据结构基础概念内容简介 数据是表征客观事物的可记录可识别的符号集合.数据是信息处理的核心基础. 本讲主要介绍了与数据结构有关的基本概念术语: l       数据 l       数据元素 l ...

  7. 考研数据结构の基础概念

    考研数据结构の基础概念 第一章 绪论 第二章 线性表 第三章 栈与队列 第四章 串 第五章 矩阵与广义表 第六章 树 第七章 图 第八章 排序 第九章 查找 第一章 绪论 1.数据:是对客观事物的符号 ...

  8. 数据结构---基础概念

    一.内容要点 (一)什么是数据结构 1.用计算机解决问题需要几个步骤: 从实际问题抽象出数学模型: 设计解决此数学问题的算法: 编译.调试程序,直至得到最终答案. 2.问题的类型 例1:图书管理系统. ...

  9. 数据结构系统学习(1)数据类型和数据结构的概念

    目录 1.有关数据结构的基本概念和术语 (1)数据 (2)数据元素 (3)数据对象 (4)数据类型 (5)抽象数据结构 2.数据结构   在现代计算机系统中,计算机更多地用于控制,管理及数据处理等非数 ...

  10. PHP数据结构基本概念

    原文:https://www.cnblogs.com/crystaltu/p/6408484.html 学习任何一种技术都应该先清楚它的基本概念,这是学习任何知识的起点!本文是讲述数据结构的基本概念, ...

最新文章

  1. SpringBoot之前端文件管理
  2. Django学习笔记 开发环境搭建
  3. Linux运维比较实用的工具
  4. STL之Deque的使用方法
  5. PC市场连续5年滑坡,但对惠普戴尔来说是好消息
  6. [云炬创业管理笔记]第十章商业计划书答辩测试2
  7. unity2018关联不到vs_原尚股份VS.长久物流,整车物流和零部件物流,谁才是好生意?...
  8. termux 开启 sshd
  9. Java多线程学习二十四:阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?
  10. 文本格式化标签(HTML)
  11. 工业项目实施-URS(用户需求说明)
  12. 《SQL基础教程》((日)MICK)PDF
  13. 7-4 复数的实部和虚部(8 分)
  14. Git Extension 合并分支
  15. 模指数运算之python实现
  16. Vue中@click.stop与@click.prevent
  17. android,adb相关
  18. 怎么删除android系统自带软件,手机系统自带的那些软件不用却卸载不了,怎么办?...
  19. 蓝牙的Baseband说明
  20. 软件项目管理案例教程第4版课后习题第一章

热门文章

  1. 学习笔记:清华慕课——数据结构(1)
  2. 粉丝说SpringBoot集成validation校验参数有坑,我试了试
  3. 一箭穿心程序编码c语言,一个简单的一箭穿心程序
  4. 《巴黎评论》启示录连载之一村上春树
  5. Spring整合RabbitMQ(包含生产者和消费者)
  6. 图解CAN与CANopen协议,小白都能一目了然
  7. notepad拼心形_用shell脚本写个心形动画表格
  8. 输入一个四位数将其加密后输出c语言,输入一个四位数,将其加密后输出.方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十...
  9. html+css唯品会的登录页面
  10. win10系统更新服务器太慢了,win10更新慢如何解决