数据结构基础入门知识概览

本文概述了数据结构在组织和存储数据中的重要性,强调了其对存储、查询和修改效率的影响。同时介绍了算法的优势,以及时间复杂度和空间复杂度在衡量算法效率中的关键作用,探讨了如何通过空间换时间来优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概览:

数据结构;数据的组织和存储方式,决定数据的逻辑结构和物理结构

优势:提高存储效率,提高查询效率,提高修改效率,降低复杂度,降低错误率

算法:解决问题的步骤和方法

优势:高效性,正确性,简洁性,可维护性

二者相互依赖,相辅相成

数据:描述客观事物的符号。计算机中可以操作的对象(整数,小数,字符,声音,图像,文字,视频等)

特点:  1.可以输入到计算机中

             2.能被计算机程序处理

结构:不同数据相互之间存在一种或多种特定关系的元素的集合

逻辑结构和物理结构:

逻辑结构:数据元素之间的逻辑关系(与计算机内部存储关系无关)

  1. 集合结构:数据元素之间没有固定的顺序,只是属于同一个集合
  2. 线性结构:数据元素之间存在一对一的线性关系
  3. 树状结构:数据元素之间存在一对多的层次关系
  4. 图形结构:数据元素之间存在多对多的任意关系

存储结构:物理结构。数据在计算机中的存储形式

顺序存储:数据元素按一定的顺序存储在连续的内存空间中(数组)

链式存储:把数据元素存储在任意的内存中,通过链接的关系将二者联系到一起(链表)

二、时间复杂度:

执行次数(语句频度或时间频度)T(n)是关于问题规模n的函数  T(n)=O(f(n)) f(n)表示这个时间函数

f的函数比较复杂,但是运用高阶无穷小的概念,舍弃一些细枝末节,如f(n)=n   O(n);

f(n)=n*(n-1)       O(n^2);

f(n)=n(n-1)(n-2)       O(n^3);

  1. 穷举法(On):(枚举)将所有情况都遍历到            例如:求n以内的奇数或偶数次数
  2. 双层循环(On^2):秉承穷举法的思想,需要两个变量i,j         例如:9*9乘法表
  3. 三层循环(On^3):三层循环
  4. 递归枚举:深度优先遍历

常见的时间复杂度:

  • 常数阶O(1):没有循环,是常数时间
  • 对数阶O(log n):给定n个元素的有序数组ai和整数v,求v在数组ai中的下标,常见的例子是二分查找算法。
  • 根号阶O(根号n):给定一个数n,判断n是否是一个素数(除了1和它本身,没有其它因子)
  • 线性阶O(n) :n越大,f(n)越大
  • 线性对数阶:多层枚举
  • 多项式阶O(n^2) O(n^3)……:多个for循环嵌套
  • 指数阶
  • 阶乘阶O(n!):暴力枚举              

三、空间复杂度:

算法在执行过程中所需的额外存储空间,包括运行时使用的变量,数组,链表等数据结构所占的内存空间.

  1. 顺序表O(n): n是顺序表的长度
  2. 链表O(n):n是链表的长度
  3. 栈O(n):n是栈的最大深度
  4. 队列O(n):n是队列的最大长度
  5. 哈希表O(n):n是哈希表中的元素的数量
  6. 树O(n):n是树的节点数量
  7. 图O(n+m):n是图中顶点的数量,m是图中边的数量

空间换时间:使用额外空间的目的,换取时间上的效率

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值