CODEDRAGON ㆍDevelopment/Algorithm, DataStructure
이진 트리 특징
· 이진 트리 정렬
· 이진 트리 데이터
이진 트리 정렬
8, 5, 10, 2, 6 순으로 저장된 이진 트리 자료구조
8, 5, 10, 2, 6
2, 5, 6, 8, 20
왼쪽 노드의 값부터 오른쪽 노드값을 왼쪽노드 -> 부모노드 -> 오른쪽노드 순으로 읽어오면 오름차순으로 정렬된 요소를 얻을 수 있습니다.
TreeSet은 정렬된 상태를 유지하기 때문에 단일 값 검색과 범위 검색(range search)시 매우 빠릅니다.
저장된 값의 개수에 비례해서 검색시간이 증가하지만 값의 개수가 10배 증가하더라도 특정 값을 찾는데 필요한 비교횟수는 3~4회 밖에 증가하지 않아 검색 효율이 뛰어난 자료구조입니다.
문자열(String)의 정렬
문자열의 정렬의 경우 정렬순서는 문자의 아스키코드값이 되므로 오름차순 정렬의 경우 코드값의 크기가 작은 순서에서 큰 순서, 즉, 공백, 숫자, 대문자, 소문자 순으로 정렬되고 내림차순의 경우에는 그 반대가 됩니다.
이진 트리 데이터
트리(tree)는 데이터를 순차적으로 저장하는 것이 아니라 노드를 서로 비교하여 저장위치를 찾아서 저장합니다.
해당 노드를 삭제할 경우 트리의 일부를 재구성해야 하므로 링크드 리스트(LinkedList)보다 데이터 추가/삭제 시간이 더 걸리게 됩니다(순차적으로 저장하지 않으므로).
트리는 배열이나 링크드 리스트보다 검색(범위 검색) 및 정렬 기능이 뛰어납니다.
중복된 값을 저장하지 못합니다. (중복 불가)
'Development > Algorithm, DataStructure' 카테고리의 다른 글
Map 상속 구조도, Map의 구현 클래스 (0) | 2017.05.31 |
---|---|
Simple linked list(singly linked list; 단순 연결 리스트) (0) | 2017.05.23 |
Algorithm Visualizer (0) | 2017.05.15 |
이진 트리(Binary Tree), 이진 트리(Binary Tree)의 코드화 (0) | 2017.05.01 |
이진 검색(binary search) (0) | 2017.05.01 |