
数据结构
pmdream
每天进步一点点,如果没有学习那就是倒退
展开
-
[集合]LinkedList源码和时间复杂度
前言:基于jdk1.8.同上一篇ArrayList的源码。1.LinkedList的复杂度?get() 获取第几个元素,依次遍历,复杂度O(n)add(E) 添加到末尾,复杂度O(1)add(index, E) 添加第几个元素后,需要先查找到第几个元素,直接指针指向操作,复杂度O(n) (这个比较容易想错)remove()删除元素,直接指针指向操作,复杂度O(1)...原创 2020-06-29 11:01:42 · 2855 阅读 · 0 评论 -
[集合]ArrayList源码和时间复杂度
1.ArrayList的复杂度?如果我们不指定位置直接添加元素时(add(E element)),元素会默认会添加在最后,不会触发底层数组的复制,不考虑底层数组自动扩容的话,时间复杂度为O(1)在指定位置添加元素(add(int index, E element)),需要复制底层数组,根据最坏打算,时间复杂度是O(n)。总结:ArrayList 是线性表(数组)get() 直接读取第几个下标,复杂度 O(1)add(E) 添加元素,直接在后面添加,复杂度O(1)add(index, .原创 2020-06-28 11:29:25 · 3377 阅读 · 0 评论 -
HashMap的插入查询删除的复杂度
1.各种java常见的数据结构的时间复杂度?| 数据结构 | 查找 | 插入 | 删除 || :------------------------------------- | :----- | :----- | :----- || 数组ArrayList | o(n) | o(1) | o(n) || 有序数组原创 2020-06-19 10:55:47 · 8035 阅读 · 2 评论 -
[数据结构]链表(一)
前言:认真脸(dk要认真的写算法。!TAT说道链表,应该搞清java或者一些框架中链表使用的场景。比如,LRU淘汰算法(LRU比如在redis存满了,线程池存满了都会用到LRU淘汰算法。常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)。)要搞清链表与数组的区别,链表的常见算法题,好处等等。一 链表的基础知识1.链表原创 2020-06-04 10:57:47 · 154 阅读 · 0 评论