Skip to main content

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

HASH 테이블 또는 해시 맵이라고도하는 연관 배열은 배열의 인덱스가 정수 대신 문자열 일 수있는 것을 제외하고 표준 배열과 유사합니다.많은 데이터베이스 애플리케이션 및 다량의 데이터를 다루는 다른 프로그램에서 연관 배열은 효율적인 방식으로 정보를 정렬하고 액세스하는 데 도움이되는 중요한 요소입니다.연관 배열의 핵심에는 일반적으로 그렇듯이 정수로 인덱싱 된 표준 배열이 있습니다.해시 함수라는 특수 알고리즘은 문자열 인덱스를 정수 인덱스로 변환하여 값을 찾습니다.이것은 일관된 변환이므로 실제 정수 지수는 절대 저장 될 필요가 없지만 매번 필요에 따라 문자열에서 계산됩니다.일반적인 배열.일반적으로 인덱스라고 불리는 것 mdash;배열 내부의 요소의 수치 위치 mdash;키라고합니다.키와 관련된 데이터를 값이라고합니다.이는 연관 배열 내에서 키가 값과 관련되어 있으며, 이는 데이터 구조의 표준 배열에서 요소를 참조하는 인덱스와 관련이 있음을 의미합니다.이것은 키를 기반으로 값의 숫자 색인을 결정하는 데 사용되는 알고리즘입니다.몇 가지 유형의 해시 함수가 있으며, 일부는 정수 인 키에서 작동하도록 설계되었으며 일부는 문자열 인 키에서 작동하도록 설계되었습니다.정수 키의 경우, 인기있는 방법은 키 값을 배열의 크기로 나누고 나머지 부문을 사용하여 고유 한 인덱스 값을 얻는 것입니다.줄 인 키의 경우.일부 방법에는 문자열에서 각 문자의 숫자 값을 추가 한 다음 일부 숫자로 나누거나 문자열의 처음 몇 문자 만 사용하여 고유 한 숫자를 얻는 것이 포함됩니다.일련의 문자열에서 숫자를 도출하는 방법에는 여러 가지가 있습니다.충돌은 키에서 파생 된 정수 색인이 다른 키의 정수 인덱스와 동일 할 때 발생합니다.이 두 키는 값 배열에서 동일한 인덱스를 효과적으로 가리 킵니다.충돌 할 수있는 다양한 솔루션이 있습니다. 주로 대부분의 실제 응용 분야에서 발생할 가능성이 높기 때문입니다. COLLISION을위한 한 가지 솔루션은 각 값 지수가 실제로 링크 된 목록이되어 하나 이상의 키가 해당 지수로 해결 될 때위치, 위치는 둘 이상의 값을 유지할 수 있습니다.이를 체인이라고하며 충돌을 처리하는 간단한 방법이지만 정보를 검색하는 데 걸리는 시간이 느려질 수 있습니다.충돌을 다루는 또 다른 방법을 선형 프로브라고합니다.충돌이 발생하면 미사용 인덱스가 발견 될 때까지 값 배열을 통해 이동하여 선형 프로브가 작동합니다.이 솔루션은 데이터를 연관 배열에 골고루 분산시키는 데 도움이 될 수 있지만 값을 찾는 데 필요한 시간을 늘릴 수도 있습니다.