[CS] 자료구조의 시간복잡도 정리, 배열과 연결리스트의 비교

최지나·2023년 12월 13일
2

CS

목록 보기
30/55

시간 복잡도 비교

자료 구조참조탐색삽입삭제특이 사항
배열(Vector)O(1)O(n)O(1) (맨 끝)O(1) (맨 끝)중간 삽입/삭제: O(n)
연결리스트O(n)O(n)O(1)O(1)Doubly linked list 기준
스택(Stack)O(n)O(n)O(1)O(1)Top 참조: O(1)
큐(Queue)O(n)O(n)O(1)O(1)Front 참조: O(1)
맵(Map)O(logn)O(logn)O(logn)O(logn)Balanced tree 기반 (예: TreeMap)
셋(Set)O(logn)O(logn)O(logn)O(logn)Balanced tree 기반
해시 테이블O(1)O(1)O(1)O(1)최악: O(n) (해시 충돌)
힙(Heap)O(1)O(n)O(logn)O(logn)최대/최소 참조: O(1)

배열 vs 연결리스트

비교 기준배열연결 리스트
메모리 공간연속 O연속 X
삽입/삭제 (맨 끝/맨 앞 제외)O(n)O(1)
n번째 요소 참조O(1)O(n)
탐색O(n)O(n)

결론 데이터의 추가와 삭제가 많을 경우 연결 리스트 사용이 유리, 참조가 많을 경우 배열 사용이 유리


REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글