C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[22655] Re:해싱의 용도(!)
김백일 [cedar] 1169 읽음    2002-11-15 15:21
권기식 님이 쓰신 글 :
: 안녕하세요?
: 자료구조론 수업을 듣고 있는데요...
: 해싱이라는 것을 배웠습니다.
: 그런데 이 해싱이라는 알고리즘이 실제로 어떤데 이용되는지 궁금합니다.
:
: 이런 질문을 어디다 올려야될지 좀 막막하군요...
:
: 도움 부탁드리겠습니다.

음... 강사가 해슁의 특징에 대해 정확하게 강조해서 설명하지 못했나보군요. -_-;

간단하게 설명하자면요...

길이가 N인 배열에서 원하는 원소를 찾는데 걸리는 평균 시간은
N에 비례합니다. 이런 경우 O(N)이라는 표현을 쓴다는 것도 아실 겁니다.
이진트리, B트리와 같은 트리 자료구조는 좀 더 빨라서, O(log N)이 되지요.
이와 같이 다른 자료구조는 N의 크기가 커질수록 접근하는 데 걸리는 시간이
늘어난다는 단점이 있습니다.

이에 비해, 해쉬 테이블의 경우는 항상 고정된 상수시간만 걸립니다: O(1)로 표기하지요.
대신 원소의 수에 관계없이 항상 고정된 크기를 차지한다는 단점이 있지요.
(만약, 해쉬테이블이 어느 한도 이상 차게 되면,
전체 크기를 2배씩 늘리는 방법으로 해결합니다.)

하여튼 가장 빠르게 원소에 접근하는 자료구조를 쓰려면
해쉬테이블이 가장 좋은 방법입니다.

참고: ANSI C++ 표준 STL에는 애석하게도 해쉬가 들어있지 않지만,
STLport와 같은 최근의 STL 배포본에는 hash_set, hash_map 등이 포함되어 있습니다.

+ -

관련 글 리스트
22654 해싱의 용도(?) 권기식 679 2002/11/15
22655     Re:해싱의 용도(!) 김백일 1169 2002/11/15
22671         Re:Re:빌더에도 해쉬 함수가 있나요..? 배현수 864 2002/11/17
22674             Re:Re:Re:빌더6에는 STLport가 포함되어 있습니다. 김백일 1108 2002/11/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.