常用数据结构与时间复杂度

时间复杂度:O(N)
空间复杂度:O(N)

常见的时间复杂度(时间复杂度从小到大为):
1.常数阶:O(1)
2.对数阶:O(log2N)
3.线性阶:O(n)
4.线性对数阶:O(nlogN)
5.幂函数阶:O(n^2)/O(n^3)....
6.指数阶:O(2^n)


常用数据结构的时间复杂度:
数据结构 查找 插入 删除 遍历

数组 O(N) O(1) O(N) ----
有序数组 O(logN) O(N) O(N) O(N)
链表 O(N) O(1) O(N) ----
有序链表 O(N) O(N) O(N) O(N)
二叉树(一般情况) O(logN) O(logN) O(logN) O(N)
二叉树(最坏情况) O(N) O(N) O(N) O(N)
平衡树(一般和最坏) O(logN) O(logN) O(logN) O(N)
哈希表 O(1) O(1) O(1) ----

 


查看一个接口的继承关系图ctr+alt+u
查看一个接口的所有方法ctr+alt+b ---再点击窗口左边的structure

常用数据结构的方法总结:
1、hashSet/哈希表
--(1)创建:Set<Integer> set = new HashSet<>();
--(2)添加元素:set.add(num);
--(3)是否含有某元素:Boolean b = set.contains(num);
2、hashMap
--(1)创建:Map<String,Integer> map = new HashMap<>();
--(2)添加元素:map.put("string",obj);
--(3)是否含有某元素:Boolean b = map.containsKey(num);
3、(1)stack
--(1)创建:Stack<Integer> stack = new Stack<>();
--(2)栈顶压入元素:stack.push(value);
--(3)栈顶弹出元素:stack.pop();
--(4)判断栈是否为空:stack.isEmpty();--为空返回true,不为空返回false。
stack.peek(), 为空返回null,不为空返回栈顶元素
--(5)查看栈顶元素的值:stack.peek();--栈为空返回null,不为空返回栈顶元素
(2)LinkedList实现栈
--(1)创建:LinkedList<Integer> A = new LinkedList<>();
--(2)栈顶压入元素:A.addLast(value);
--(3)栈顶弹出元素:A.removeLast();
--(4)判断栈是否为空:A.isEmpty();
--(5)查看栈顶元素的值:A.peekLast();

posted @   甜甜筒  阅读(559)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
主题色彩