이진검색트리 3

알고리즘(9) - 검색트리 - 레드블랙트리 red-black tree

레드블랙트리 Red-Black Tree 이전 이진검색트리에서, 평균 수행시간이 O(log n)이라 했다. 그러나 트리의 균형이 나쁘다면 최악의 경우 n에 비례한 시간이 걸린다. 이를 보완하기 위한 '균형 잡힌 이진트리'가 바로 레드블랙트리다. 이진검색트리에 몇 가지 조건을 추가해서 균형 잡힌 트리가 되도록 한다. 트리의 높이, 검색/삽입/삭제 연산이 모두 O(log n)의 시간이 걸린다. 레드블랙트리는 모든 노드에 빨강 혹은 검정을 칠하되 다음과 같은 특성을 만족해야 한다. 루트는 블랙이다. 모든 리프(NIL, Null값과 같다)는 블랙이다. 노드가 레드면 그 노드의 자식은 반드시 블랙이다. 루트 노드에서 임의의 리프노드에 이르는 경로에서 만나는 블랙 노드의 수는 모두 같다. 참고로 레드블랙트리의 리프노..

알고리즘(8) - 검색트리 ( search tree )

검색트리 데이터의 저장과 검색은 자료구조와 알고리즘 분야에서 매우 중요하다. 수행시간에서 커다란 차이를 보이기 때문이다. 데이터의 저장과 검색을 효율적으로 하기 위해서는 적절한 자료구조 및 알고리즘의 사용을 필요로 한다는 사실은 자명하다. 만약 데이터가 들어오는 순서대로 배열에 저장한다고 가정해보자. 자료수가 n개일 때 수행시간은 다음과 같다. 새로운 자료 하나를 저장하는 시간은 Θ(1) 자료를 검색하는 시간은 Θ(n) 보다시피 검색에는 비효율적이다. 허나, 트리 모양 구조의 검색 트리에 저장한다면 어떨까? 저장과 검색, 둘 모두 Θ(log n)의 시간이 걸린다. 검색트리는 자식노드 갯수에 따라, 저장장소에 따라, 검색키에 포함된 필드수에 따라 분류된다. 다만 여기서는 언급하지 않겠다. 이진 검색트리 이..

검색 알고리즘

검색 search이란 컴퓨터에 저장한 자료 중에서 원하는 정보를 찾는 작업이다. 다르게 말하자면, 원하는 검색키를 지닌 항목을 찾는 것이며, 원하는 항목이 있을 경우엔 '검색 성공', 없을 경우엔 '검색 실패'가 된다. 원소의 삽입 삭제를 위해서도 검색 연산을 수행하기도 한다. 검색 알고리즘을 고를 땐 고려해야 할 사항이 있다. 수행 시간 복잡도, 자료구조, 정렬 여부, 자료의 위치 등이 있다. 검색 수행 위치에 따라, 메모리에서 수행하면 내부 검색, 보조기억장치에서 수행하면 외부 검색으로 나뉜다. 검색 방식에도 분류가 있다. 검색 대상의 키를 저장된 자료의 키와 비교하여 검색하는 '비교 검색'과 계수적인 성질 값을 이용한 계산으로 검색하는 '계산 검색'이 있다. 순차 검색 Sequential searc..

728x90
반응형