[자료구조] 해시테이블
·
개발/자료구조
1. 해시테이블이란 js의 객체와 같다고 생각하면된다. 해시테이블은 객체와 마찬가지로 키-값 쌍을 저장하는데 사용한다. 배열과는 다르게 해시테이블은 순서를 가지지 않는다. 값을 찾거나, 새로운 값을 찾거나, 값을 제거하는데 매우 빠르다. 모든 언어들은 해시테이블의 구조를 가지고 있다. 2. 해시함수 조건 (1) 속도 무언가를 찾아내거나 바꾸거나 제거하기 위해 접근할때마다 해시 함수를 실행시켜야 하기 때문에 해시함수는 빨라야 한다. (2) 일관성 일관된 방식으로 분배를 해서 다른 값들과 겹치지 않게 해야 한다. (3) 결정론적 특정 입력값을 입력할때마다 같은 출력값이 나와야 한다. 3. 해시함수 구현 function hash(key, arrayLen) { let total = 0; let WEIRD_PRI..