1数据结构的分类,算法效率的度量

一,数据结构的定义和分类

数据结构:数据之间的关系即数据的逻辑结构,因为要存储到计算机里,所以视为将这个数据的逻辑结构映射到存储器里。即数据因为自身的和其他的数据的关系而在计算机内存储的方式。我们就归类了一些类型。

二,算法的定义和效率度量

算法:数据之间要运算,不同的数据结构也有更适合自己的算法,题目中也不会说告诉你要怎么存储使用数据,需要自己辨别,并在多个算法中根据算法效率的度量(两个),选择最优的算法。

算法效率的度量:

1.时间复杂度T(n)=O(f(n))

1>怎么算:

①只看语句重复最多次的那个语句称为基本语句,比如如果是多层嵌套则最深层的嵌套即基本语句

②多层嵌套可以借助数学公式求和

③找出执行次数k与n的关系,表示为k=g(n),即O(k)=O(g(n))为所求

④运用加法法则和乘法法则:可以分成几个可以估算的部分

⑤忽略低次幂项(即忽略不是最大执行频率的语句)和最高次幂系数(即常数不要)

2>时间复杂度的分类:选平均和最坏居多,默认最坏,以保证算法的运行时间不比它长

例:用顺序查找在n个元素数组中找key,最好:1次即1;最坏:n次即n;平均:O(n/2)=O(n)

3>算法时间效率的比较(用图像记)

O(log2n)可以直接写成O(logn),这种对数的其实下角标不重要

2.空间复杂度S(n)=O(f(n))

空间复杂度是算法所需存储空间的度量,由以下两个部分组成

算法本身需要占据的空间:变量,常数,指令,输入输出

算法要使用的辅助空间

例:这里t和b[i]都是辅助空间,相当于临时用的

相关推荐
辞砚技术录8 小时前
MySQL面试题——索引、B+树
数据结构·数据库·b树·面试
666HZ6668 小时前
数据结构1.0 数据结构在学什么
数据结构·算法
余瑜鱼鱼鱼8 小时前
Java数据结构:从入门到精通(五)
数据结构
空空潍8 小时前
hot100-滑动窗口最大值(day11)
数据结构·c++·算法·leetcode
R-G-B9 小时前
BM28 二叉树的最大深度
数据结构·算法·二叉树·bm28·二叉树的最大深度
菜鸟233号10 小时前
力扣416 分割等和子串 java实现
java·数据结构·算法·leetcode
求梦82010 小时前
【力扣hot100题】缺失的第一个正数(12)
数据结构·算法·leetcode
黎雁·泠崖10 小时前
二叉树实战进阶全攻略:从层序遍历到OJ题深度解析
c语言·数据结构·leetcode
散峰而望10 小时前
【算法竞赛】顺序表和vector
c语言·开发语言·数据结构·c++·人工智能·算法·github
cpp_250111 小时前
B3927 [GESP202312 四级] 小杨的字典
数据结构·c++·算法·题解·洛谷