자료구조

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

해시의 핵심

매번 자료를 번호 순대로, 이름 순대로 딱딱 정리하면서 저장하는 것이 좋을까요? 

계속 자료가 추가되고, 삭제되고, 검색을 하고 있는 와중이라면, 계속 정리하면서 일을 하는 것은 되려 더 일을 

고단하게 만들겁니다. 

그런 상황에서는 딱 단순하게, 제목의 첫 글자를 기준으로 책장을 나눈 후에,

 '가' :  가요사전 , 가족의 탄생 ... 

'나'  : 나라는 무엇인가, 나루토 .... 

'다'  : 다름이 중요하다. 다람쥐의 생태 ... 

 이런 식으로 책장에다가 대충 넣지 않을까요?

 

해시의 알고리즘 철학은 단순합니다.

" 정렬을 하지 않고, 최대한 빨리 넣고,  빨리 검색하자"

 

이전에 다룬 자료구조 알고리즘인 TREE 구조와의 중요한 차이는 바로 정렬의 유무입니다!

이 때까지 다루었던, BST tree, AVL tree, OBST tree는 순서를 꼭! 아는 것이 중요한 자료에서 빛을 발합니다.

예컨대, 계산 수식을 저장할 때 던지요.

 

해시는 자료에다가 INDEX를 부여하여, 저장하는 방식입니다. 

구체적으로 해시 함수에 대해 알아가기 전에 이것만 압시다.

해시 알고리즘의 핵심은 어떻게 INDEX를 부여하는가? 에 있습니다.

인덱스의 부여 방식에 따라 해시 알고리즘은 정말 뛰어날수도, 걍 쓰레기가 될 수도 있습니다.

  • 봤어요 (0명)

댓글

댓글 본문
작성자
비밀번호
버전 관리
SSSANG
현재 버전
선택 버전
graphittie 자세히 보기