Загружаем каталог…
Загружаем каталог…
해시 테이블은 키로 값을 빠르게 찾는 데 자주 쓰입니다. 그런데 해시값만 같으면 같은 키라고 봐도 될까요? 이번에는 서로 다른 키가 같은 위치에 들어가는 충돌 을 작은 숫자로 확인해보겠습니다. 해시는 후보 위치를 정한다 해시 함수는 키를 저장할 위치를 계산하는 데 사용됩니다. 서로 다른 키가 같은 버킷으로 갈 수 있으므로 충돌을 처리해야 합니다. 체이닝은 버킷에 여러 항목을 보관하고, 조회할 때 실제 키를 비교하는 방법입니다. Open Data Structures의 체이닝 해시 테이블 그림의 key % 4 는 충돌을 쉽게 보여 주기 위한 함수입니다. 실제 문자열 해시나 보안용 해시 함수가 아닙니다. 충돌해도 두 값을 보관하기 const buckets = Array.from({ length: 4 }, () => []); for (const [key, value] of [[1, "one"], [5, "five"]]) { buckets[key % 4].push([key, value]); } const found = buckets[5 % 4].find(([key]) => key === 5); console.log(buckets[1].length); console.log(found[1]); 검증한 출력은 2 , five 입니다. 두 키가 같은 버킷에 있지만 실제 키 비교로 값을 구분했습니다. 이 예제는 양의 정수 키의 삽입·조회만 다루며, 삭제와 재삽입, 갱신, 크기 확장은 구현하지 않았습니다. O(1)에는 조건이 있다 해시가 항목을 적절히 분산하고 적재율을 관리하면 기대 조회 비용을 작게 유지할 수 있습니다. 하지만 충돌이 한곳에 몰리면 체이닝 버킷의 선형 탐색이 길어집니다. 크기를 늘릴 때 재배치 비용도 생깁니다. 평균·기대 비용, 최악 비용, 여러 삽입에 나눠 보는 상각 비용을 구분해야 합니다. 같은 자료의 성능 조건 이 모형만으로 JavaScript Map 이나 특정 언어의 딕셔너리가 같은 방식으로 구현되어 있다고 주장하지 않습니다. 자료구조의 개념과 실제 런타임 구현은 별도로 확인합니다. 확인 문제 해시값이 같으면 키도 같을까요? 위 코드에 키 9를 추가하면 어느 버킷에 들어갈까요? 한 버킷에 모든 항목이 들어가면 조회 비용은 어떻게 될까요? 답과 해설 아닙니다. 충돌할 수 있으므로 키를 확인합니다. 9 % 4 = 1 이므로 버킷 1입니다. 이 체이닝 모형에서는 해당 리스트를 순서대로 찾아야 해서 항목 수에 따라 비용이 커집니다. 오늘은 키 1, 5, 9를 넣어 그림을 다시 그려보겠습니다. 내일은 버킷 개수를 8로 바꾸고, 일주일 뒤에는 열린 주소 방식과 체이닝의 차이를 찾아보면 좋겠습니다. 다음은 입력 크기에 따라 연산 수가 어떻게 늘어나는지입니다. 자료 확인 기준: Open Data Structures의 ChainedHashTable 절, 2026-10-04. 실행 결과는 교육용 구현의 출력이며 상용 런타임 벤치마크가 아닙니다. 예제 검증 환경: Node.js v24.13.1.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
해시 테이블은 왜 키를 다시 비교할까? 충돌과 버킷. 해시 테이블은 키로 값을 빠르게 찾는 데 자주 쓰입니다. 그런데 해시값만 같으면 같은 키라고 봐도 될까요? 이번에는 서로 다른 키가 같은 위치에 들어가는 충돌 을 작은 숫자로 확인해보겠습니다. 해시는 후보 위치를 정한다 해시 함수는 키를 저장할 위치를 계산하는 데 사용됩니다. 서로 다른 키가 같은 버킷으로 갈 수 있으므로 충돌을 처리해야 합니다. 체이닝은 버킷에 여러 항목을 보관하고, 조회할 때 실제 키를 비교하는 방법입니다. Open Data Structures의 체이닝 해시 테이블 그림의 key % 4 는 충돌을 쉽게 보여 주기 위한 함수입니다. 실제 문자열 해시나 보안용 해시 함수가 아닙니다. 충돌해도 두 값을 보관하기 const buckets =…