[알고리즘] LinkedList
2024. 3. 10. 06:58ㆍ알고리즘 풀이/Java
특징: 시작 노드만 알면 연결된 모든 노드를 알 수 있다.
Doubly-linked list
size(): O(1)
isEmpty(): O(1)
get(): O(n)
getFirst(): O(1)
getLast(): O(1)
set(): O(n)
iterator(): O(1)
listIterator(): O(1)
add(E e): O(1) (amortized time)
add(int index, E e): O( index 오른쪽 배열 크기) (amortized time)
remove(): O(n)
removeFirst(): O(1)
removeLast(): O(1)
peek(): O(1)
element(): O(1)
peekFirst(): O(1)
peekLast(): O(1)
pollFirst(): O(1)
pollLast(): O(1)
pop(): O(1)
push(): O(1)
indexOf(): O(n)
contains(): O(n)
addAll(E e): O(m) (넣는 배열 크기)
addAll(int index, E e): O(n + m)
sort(): O(nlogn)
clear(): O(n)
ArrayList와 비교했을때
장점
- 앞에서의 add, remove가 빠르다.
- remove가 빠르다.(중간 지점으로 가는건 ArrayList와 똑같지만 빼는 건 O(1) ArrayList는 O(m) 밀어주어야하기 때문에)
단점
- get, set이 느리다.
- 전반적으로 ArrayList보다 느리다.
'알고리즘 풀이 > Java' 카테고리의 다른 글
[알고리즘] HashMap (0) | 2024.03.10 |
---|---|
[알고리즘] HashSet (0) | 2024.03.10 |
[알고리즘] ArrayList 메서드별 시간 복잡도 (0) | 2024.03.09 |
[알고리즘] 프로세서 연결하기 (0) | 2024.02.29 |
[알고리즘] 디버깅 꿀팁 (0) | 2024.02.29 |