❗Trie란?
Trie(트라이)는 문자열을 저장하고 효율적으로 검색하기 위한 트리 기반 자료구조이다. 특히 문자열의 접두사(prefix) 검색에 강점이 있고 자동 완성, 사전 검색, 문자열 집합에서의 중복 확인 등에 유용히다
각 노드는 하나의 문자를 저장하고 자식 노드로 이어지는 링크들을 가지며 루트에서 시작해 각 문자를 따라가면 하나의 문자열이 완성된다.
- 루트 노드는 아무 문자도 저장하지 않고 자식 노드들로 각 문자가 연결
- 각 노드는 문자와 자식 노드들을 가짐
- 단어의 끝을 표시하는 종료 노드가 필요하며 보통 플래그로 설정
❗Trie의 복잡도
삽입/탐색 시간복잡도 | O(L) (L은 문자열의 길이) 문자열의 길이에 비례하기 때문에 길이가 짧을수록 빠른 퍼포먼스를 낼 수 있다. |
공간복잡도 | O(∑L) (저장된 모든 문자열의 길이 합) 문자열의 접두사를 공유해서 중복되는 문자들이 저장되는 공간은 줄어든다. 하지만 각 문자에 대한 노드를 따로 저장하기 때문에 다소 많은 공간을 차지할 수 있다. |
❗Trie의 장점과 단점
장점 |
|
단점 |
|
728x90
반응형
'🔻Computer Science > Data Structure' 카테고리의 다른 글
[DS] LinkedList (0) | 2024.11.04 |
---|