数据结构(其一)--基础知识篇

目录

[1. 数据结构三要素](#1. 数据结构三要素)

[1.1 数据结构的运算](#1.1 数据结构的运算)

[1.2 数据结构的存储结构](#1.2 数据结构的存储结构)

[2. 数据类型,抽象数据类型](#2. 数据类型,抽象数据类型)

[3. 算法](#3. 算法)

[3.1 时间复杂度T(n)](#3.1 时间复杂度T(n))

[3.2 空间复杂度](#3.2 空间复杂度)


1. 数据结构三要素

1.1 数据结构的运算

即,增删改查

1.2 数据结构的存储结构

2. 数据类型,抽象数据类型

数据类型:

(1). 原子类型:bool、int...

(2). 结构类型:类、结构体...

抽象数据类型(ADT):

类似于结构类型,使用者只需要知道该数据结构的名字以及其数据之间的联系(函数)即可

3. 算法

3.1 时间复杂度T(n)

时间复杂度越小,算法越优秀

(1). 运算法规

加法:

多项相加的时候,只保留最高阶的项(次方)

T1(n) + T2(m) = T(max(n,m))

乘法:

T1 x T2 = O( f(n) x g(n) )

(2). 常见的数量级比较

一般,记住前三个和后三个就足够使用------常对幂指阶

3.2 空间复杂度

1GB = 1024*1024*1024 字节 约为10亿

1GB=1024MB 1MB=1024KB 1KB=1024字节

其实,不必知道各种数据类型的储存字节数,直接以个数储存就ok,毕竟到最后,系数都会被略去,化为系数为一的含 n 的计算公式。

在函数中,作为参数传入的数据都不必被算作空间复杂度的一部分,因为这些参数的数量是可知的,可知,即可被省略(递归函数除外)

在函数中,需要计算的是那些在函数中,声明产生的变量。

特别的:

在递归函数中,每次传入的数据,并不会覆盖在原来的位置,而是储存在新的地址,所以,欲求递归函数的空间复杂度,需要清楚,递归的有起点到终点的全过程内存占用情况。

在涉及到数组的递归函数时,尤其是数组的长度随递归发生改变,那么往往需要用到等差数列求和,

相关推荐
青山木39 分钟前
Hot 100 --- 下一个排列
java·数据结构·算法·leetcode
SelectDB技术团队2 小时前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
kiracrimson3 小时前
希尔排序:让插入排序不再怕逆序
数据结构·算法·排序算法
Logic1013 小时前
C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
hnjzsyjyj5 小时前
洛谷 P1339:[USACO09OCT] Heat Wave G ← Bellman-Ford 算法
数据结构·bellman-ford 算法
SelectDB技术团队7 小时前
ClickHouse 存日志的能力边界:并发、检索与 trace 回放的实测对照
数据结构·数据库·clickhouse·日志分析·apache doris·日志存储
垆边人似月.7 小时前
华为算法题:最长连续递增子序列的变
数据结构·算法·leetcode
w_zero_one7 小时前
链表(2)
java·数据结构·链表
kukubuzai8 小时前
二分查找系列一
数据结构·算法·leetcode
wzdark8 小时前
算法与数据结构教学的可视化新模式探索4
数据结构