연관 배열이란 무엇입니까?

해시 테이블 또는 해시 맵이라고도하는 연관 배열은 배열의 인덱스가 정수 대신 문자열 일 수있는 것을 제외하고 표준 배열과 유사합니다. 많은 데이터베이스 애플리케이션 및 다량의 데이터를 다루는 다른 프로그램에서 연관 배열은 효율적인 방식으로 정보를 정렬하고 액세스하는 데 도움이되는 중요한 요소입니다. 연관 배열의 핵심에는 일반적으로 그렇듯이 정수로 인덱싱 된 표준 배열이 있습니다. 해시 함수라는 특수 알고리즘은 문자열 인덱스를 정수 인덱스로 변환하여 값을 찾습니다. 이것은 일관된 변환이므로 실제 정수 지수는 절대 저장 될 필요가 없지만 매번 필요에 따라 문자열에서 계산됩니다.

연관 배열을 참조 할 때 사용되는 용어는 일반 어레이에 대해 이야기 할 때 사용되는 것과 약간 다를 수 있습니다. 일반적으로 인덱스라고 불리는 것은 배열 내부의 요소의 수치 위치 인 색인이라고합니다.열쇠. 키와 관련된 데이터를 값이라고합니다. 이는 연관 배열 내에서 키가 값과 관련되어 있으며, 이는 데이터 구조의 표준 배열에서 요소를 참조하는 인덱스와 관련이 있음을 의미합니다.

.

모든 연관 배열의 핵심은 해시 함수입니다. 이것은 키를 기반으로 값의 숫자 색인을 결정하는 데 사용되는 알고리즘입니다. 몇 가지 유형의 해시 함수가 있으며, 일부는 정수 인 키에서 작동하도록 설계되었으며 일부는 문자열 인 키에서 작동하도록 설계되었습니다. 정수 키의 경우, 인기있는 방법은 키 값을 배열의 크기로 나누고 나머지 부서를 사용하여 고유 한 인덱스 값을 얻는 것입니다.

.

해시 함수는 문자열 인 키에 대해 훨씬 더 복잡 할 수 있습니다. 일부 방법에는 문자열에서 각 문자의 숫자 값을 추가 한 다음 숫자로 나누는 것이 포함됩니다.또는 문자열의 처음 몇 문자 만 사용하여 고유 한 숫자를 얻습니다. 문자열에서 숫자를 도출하는 방법에는 여러 가지가 있습니다.

연관 배열에서 많은 양의 키 값 쌍을 다룰 때 발생할 수있는 한 가지 문제를 충돌이라고합니다. 충돌은 키에서 파생 된 정수 색인이 다른 키의 정수 인덱스와 동일 할 때 발생합니다. 이 두 키는 값 배열에서 동일한 인덱스를 효과적으로 가리 킵니다. 충돌에 대한 다양한 솔루션이 있습니다. 주로 대부분의 실제 응용 분야에서 발생할 가능성이 높기 때문입니다.

충돌을위한 하나의 솔루션은 각 값 지수를 실제로 링크 된 목록으로 만드는 것입니다. 따라서 둘 이상의 키가 해당 인덱스 위치로 해결되면 위치가 둘 이상의 값을 유지할 수 있습니다. 이를 체인이라고하며 충돌을 처리하는 간단한 방법이지만 정보를 검색하는 데 걸리는 시간이 느려질 수 있습니다. 충돌을 다루는 또 다른 방법을 선형 프로브라고합니다.충돌이 발생하면 미사용 인덱스가 발견 될 때까지 값 배열을 통해 이동하여 선형 프로브가 작동합니다. 이 솔루션은 데이터를 연관 배열에 골고루 분산시키는 데 도움이 될 수 있지만 값을 찾는 데 필요한 시간을 늘릴 수도 있습니다.

.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?