본문 바로가기
반응형

해시검색3

초보 자바 프로그래밍(30) - 개방주소법 (Open Addressing) 🔖 INDEX   개방 주소법(Open Addressing)은 모든 키-값 쌍을 해시 테이블 자체에 직접 저장하는 방법입니다. 충돌이 발생하면, 다른 버킷에 키-값 쌍을 저장하는 방법을 사용합니다. 개방 주소법에는 선형 탐사(linear probing), 이차 탐사(quadratic probing), 더블 해싱(double hashing) 등의 충돌 해결 방식이 있습니다. 개방 주소법의 특징개방 주소법의 장점은 다음과 같습니다:해시 테이블 외부에 추가적인 메모리를 사용하지 않으므로 공간 효율성이 높습니다.캐시 지역성이 좋아서 연속된 메모리 위치에 데이터를 저장할 수 있습니다. ​ 개방 주소법의 단점은 다음과 같습니다:해시 테이블의 로드 팩터가 높아지면 성능 저하가 심해집니다. 일반적으로 로드 팩터가 0.. 2023. 5. 2.
초보 자바 프로그래밍(29) - 개별체이닝 (Separate Chaining) 🔖 INDEX   개별 체이닝은 각 해시 버킷에 연결 리스트(linked list) 또는 트리와 같은 자료 구조를 사용하여 키-값 쌍을 저장하는 방법입니다. 충돌이 발생하면, 해당 버킷에 있는 연결 리스트에 새로운 키-값 쌍을 추가합니다. 개별 체이닝의 특징개별 체이닝의 장점은 다음과 같습니다:해시 테이블의 크기와 상관없이 삽입, 삭제, 검색 연산이 상수 시간에 가능합니다(연결 리스트의 길이가 작은 경우).해시 테이블의 로드 팩터가 높아져도 성능 저하가 덜 합니다. ​ 개별 체이닝의 단점은 다음과 같습니다:연결 리스트를 사용하므로, 메모리 할당 및 해제에 추가적인 오버헤드가 발생합니다.연결 리스트를 사용하기 때문에 캐시 지역성이 떨어져 성능이 저하될 수 있습니다.  개별 체이닝 구현 예제개별 체이닝 방.. 2023. 5. 2.
초보 자바 프로그래밍(28) - 해시검색 (Hash Search) 🔖 INDEX   해시 검색(hash search)은 해시 테이블(hash table)이라는 자료 구조를 사용하여 빠르게 원하는 값을 찾을 수 있는 검색 방법입니다. 해시 테이블은 키(key)와 값(value)을 저장하는 데 사용되며, 해시 함수(hash function)를 사용하여 키를 해시 값으로 변환합니다. 해시 값은 해시 테이블 내의 인덱스로 사용되어 효율적인 검색, 삽입 및 삭제를 가능하게 합니다. 해시 검색의 작동 방식 및 구현 예제해시 검색의 작동 방식은 다음과 같습니다:해시 함수를 사용하여 키를 해시 값으로 변환합니다.해시 값으로 해시 테이블 내의 인덱스를 찾습니다.인덱스에 저장된 값을 검색, 삽입 또는 삭제합니다.자바에서 해시 검색 알고리즘을 구현할 때, HashMap 클래스를 사용할 .. 2023. 5. 2.
반응형