面试必备:数据结构时间复杂度及用法大全

基础数据结构

1.时间复杂度

数据结构根据索引查找根据关键字查找插入删除
数组(Array)O(1)O(n)O(n)O(n)
队列(queue)O(n)O(n)O(1)O(1)
链表(Linked list)O(n)O(n)O(1)O(1)
二叉树(Binary Search Tree) 平均情况O(log(n))O(log(n))O(log(n))
二叉树(Binary Search Tree) 最坏O(n)O(n)O(n))

2.空间复杂度

数据结构数组队列链表二叉树
空间复杂度O(1)O(1)O(1)O(1)

高级数据结构

数据结构各类操作时间复杂度能够解决哪些问题面试考察频率学习难度
堆(Heap)O(log(n)): push, pop; O(1):top全局动态找最大最小
哈希表(Hash table)O(1): insert, find, delete查询元素是否存在,key-value查询问题
前缀树(Trip)O(1): insert, find, delete和哈希表解决问题类似,查询元素是否存在,key-value查询问题
并查集(UnionFind)O(1): union, find动态合并集合并判断两个元素是否在同一个集合
平衡排序二叉树(Balanced BST)O(log(n)): insert, find, delete, max, min, lower, upper动态增删查改并支持找全局最大最小值; 找比某个数大的最小值和比某个数小的最大值可以用(尽可能接近)
跳跃表(Skip List)O(log(n)): insert, find, delete, max, min, lower, upper和Balanced BST解决的问题一样,并能一直维持一个有序链表
树状数组(Binary Indexed Tree)O(log(n)): insert, delete, range, sum增删改的同时,解决区间求和问题
线段树(Segment Tree)O(log(n)): insert, find, delete, range max, range min, range sum, lower, upper; O(1):global max, global min增删改的同时,解决区间求值问题, max, min, sum 等等可以完全替代

2.空间复杂度

数据结构哈希表前缀树并查集平衡排序二叉树跳跃表树状数组线段树
空间复杂度O(1)O(1)O(1)O(1)O(1)O(1)O(log(n))O(1)
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值