Hash Table의 구조와 원리
안녕하세요. 알렉스 입니다. 이번에는 Hash Table에 대해서 설명을 드리도록 하겠습니다.
일단 사과(apple)상자를 어느 구역에 넣을건지를 결정해야 합니다. 물론 표를 만들어 기록하고 넣을수도 있지만 여기서는 Hash Table 방법으로 두기로 하겠습니다.
중요한 점은 apple와 구역사이에 작업이 있어야 합니다. 즉 apple와 구역이 어떻게든 연관이 되어 있다는 뜻입니다.
일단 알파벳(소문자)을 숫자로 치환한 표입니다. 이 표는 ASCII코드표중 소문자 부분만 참고했습니다. 따라서 소문자 알파벳 뿐만 아니라 넓게 숫자, 특수문자 등도 표를 확장할수 있습니다. 하지만 여기서는 Hash Tag의 원리를 파악하는 것이므로 소문자 알파벳으로 제한하겠습니다.
위 사진은 본격적으로 apple을 숫자로 변환하는 방법을 보여주고 있습니다. 각 알파벳에 대응하는 숫자를 더한 총합을 구역의 갯수, 여기서는 4를 나눈 나머지값의 구역에 넣으면 됩니다.
사실 apple외 숫자로 변환할수 있는 어떠한 문자가 들어와도 4로 나누면 0,1,2,3 요 4개중에 하나로 들어갑니다. 이유는 4로 나눌때 나머지는 4보다 같거나 클수 없기 때문입니다. 4보다 크면 또 나누면 되기 때문입니다.
이제 저는 숫자 2를 갖고 2구역으로 사과 상자를 들고 갑니다.
이제 사과 상자 뿐만 아니라 멜론, 망고, 토마토, 바나나 상자들도 Hash Tag 계산 방법을 이용해서 넣을수 있습니다.
댓글
댓글 쓰기