본문 바로가기
정보AP

11-2 (탐색과 맵 구조)

by 도로로(Dororo) 2024. 11. 11.

자료를 효율적으로 탐색하기 위해 데이터르 잘 정리하는 방법으로 탐색과 맵 구조가 있다.

 

탐색은 레코드의 집합에서 원하는 레코드를 찾는 작업이다.

레코드의 집합을 테이블이라고 칭하고, 레코드들은 서로를 구별하여 인식할 수 있는 키(혹은 탐색키)를 가지고 있다.

=> 탐색은 테이블에서 원하는 탐색키를 가진 레코드를 찾는 작업이다.

 

또는 딕셔너리는 자료를 저장하고 탐색키르 이용해 원하는 자료를 빠르게 찾을 수 있도록 하는 탐색을 위한 자료구조를 말한다. 맵은 엔트리라는 키를 가진 레코드(keyed record)의 집합이다.

엔트리는 키와 값 두 개의 필드를 가진다.

 

키(key): 영단어나 인명같은 레코드를 구분할 수 있는 탐색키

값(value): 영단어의 의미나 어떤 사람의 주소와 같은 탐색키와 관련된 값

 

이렇게 맵은 키-값의 쌍으로 이뤄진 엔트리의 집합으로 파이썬은 내장 자료형으로 딕셔너리를 제공하는데, 이것은 자료구조 맵을 구현한 예이다.

 

Map ADT

search(key): 탐색키 key를 가진 레코드를 찾아 반환

insert(entry): 주어진 entry를 맵에 삽입

delete(key): 탐색키 key를 가진 레코드를 찾아 삭제

 

맵을 구현하는 여러가지 방법으로는

가장 간단한 방법은 엔트리를 리스트에 저장하여 킷값에 따라 정렬하여 맵을 만들 수도 있고, 정렬하지 않고 맵을 만들 수 있는데, 방법에 따라 연산들의 성능에 차이가 발생한다.

맵의 탐색 성능을 향상하고자 하면 이진탐색트리를 사용한다.

맵을 구현하기 가장 좋은 방법은 해싱이다.

 

'정보AP' 카테고리의 다른 글

12-2 (고급 탐색 구조: 해싱)  (0) 2024.12.04
12-1 (탐색 알고리즘)  (1) 2024.12.04
11-1 (정렬 응용: 집합 다시보기)  (0) 2024.11.11
10-2 (정렬 알고리즘 알아보기)  (0) 2024.10.24
10-1 정렬의 의미  (0) 2024.10.24