본문 바로가기
728x90
반응형

배열 검색2

[자료구조 with Python] 6. 선형 자료 구조 - 배열(5), Hash 충돌과 Chaining 지난 포스팅에서는 배열의 검색 알고리즘 중 하나인 Hash 검색에 대해 알아보았다. Hash 검색은 배열에 저장할 자료가 가지는 특수한 값을 key 값으로 선정하고, 그 key 값으로부터 추출한 Hash 값을 통해 배열에 저장할 index를 지정하는 방식이다. 그리고 Hash 검색을 이용하는 자료구조형은 Python의 Dictionary와 매우 유사하다. Hash를 통해 index를 지정하는 과정에서, 서로 다른 key 값이 배열 내의 같은 index를 지정받을 수 있다. 이렇게 될 경우, 나중에 저장된 값이 이전에 저장된 값을 지워버리기 때문에 정보의 저장이라는 측면에서 문제가 발생하게 된다. 이렇게 Hash 검색 알고리즘과 자료구조에서, 저장할 배열의 위치가 서로 공유되는 현상을 Hash 충돌이라고 .. 2021. 1. 23.
[자료구조 with Python] 5. 선형 자료 구조 - 배열(3), 선형/이진 검색 앞선 포스팅에서 배열에 대해 설명을 할 때, 배열은 서로 연관된 정보를 하나의 이름으로 관리하는 자료구조라는 뉘앙스로 설명했던 적이 있다. 관련있는 자료를 인접한 메모리에 저장하기 때문에 일반적인 변수에 선언하여 값을 저장하는 것보다 훨씬 빠르게 값을 검색하는 것이 가능해진다. 배열에 존재하는 값을 검색하는 가장 기본적인 방법은, 배열의 0번 index부터 순차적으로 비교하면서 같은 값이 있는지 확인하는 것이다. 컴퓨터의 성능이 좋거나 배열의 크기가 그렇게 크지 않다면 나쁘지 않은 방법이나, 역으로 배열의 크기가 무수히 커지거나, 컴퓨터 성능이 그렇게 좋지 않은 경우라면 이런 기본적인 검색 방법으로는 효율성이 떨어질 수 밖에 없다. 이러한 이유로, 배열 내에 존재하는 값을 효율적으로 검색하기 위한 몇몇 .. 2021. 1. 5.
728x90
반응형