배열을 사용하여 해시 테이블을 구현해야합니까? 대체 데이터 구조가 동일한 효율성을 달성합니까? 그렇다면 왜? 그렇지 않다면 배열이 제공하는 것과 동일한 효율성을 보장하기 위해 데이터 구조가 만족해야하는 조건은 무엇입니까?배열을 사용하여 해시 테이블을 구현해야합니까?
2
A
답변
2
배열을 사용하여 해시 테이블을 구현해야합니까?
아니요. 인터페이스는 arrray와 다른 다른 데이터 구조와 함께 구현할 수 있습니다. 예 : 레드 - 블랙 트리 (자바의 TreeMap).
이것은 액세스 시간이 O(logN)
입니다.
그러나 Hash Table
은 액세스 시간이 O(1)
(가장 좋은 경우 - 충돌 없음) 일 것으로 예상됩니다.
이것은 일정한 시간에 임의 접근의 가능성을 제공하는 배열을 통해서만 달성 될 수 있습니다.
어레이가 제공하는 효율성을 보장하기 위해 데이터 구조가 만족해야하는 조건은 무엇입니까?
배열과 비교할 때 성능이 비슷해야합니다 (O(N)
). treemap은 O(logN)
입니다. 에 대한 최악의 액세스 시간은 모두입니다.
관련 문제
- 1. 배열을 사용하여 해시 테이블을 구현하는 Java 코드
- 2. 해시 테이블을 사용하여 쿼리 속도를 최적화하는 방법
- 3. 두 배열을 사용하여 해시 만들기
- 4. 해시 테이블을 만드는 프로그램
- 5. 해시 테이블을 사용하여 무제한 배열 만들기
- 6. 해시 배열을 해시 배열로 변환
- 7. 실제로 해시 테이블을 사용합니까?
- 8. 자바에서 해시 테이블을 만드는 방법
- 9. 해시 테이블을 검색하려면 어떻게해야합니까?
- 10. C++을 사용하여 해시 테이블을 다른 해시 테이블에 복사
- 11. 컨테이너를 사용하여 해시 테이블을 만들고 사용하십시오. Map
- 12. 해시 테이블을 사용하여 파일 이름 바꾸기
- 13. 해시 테이블을 사용하여 텍스트로 키워드 검색하기
- 14. 해시 테이블을 사용하는 방법?
- 15. 세션에 해시 테이블을 저장하십시오.
- 16. Perl에서 해시 배열을 반복합니다.
- 17. 다른 해시 테이블로 해시 테이블을 업데이트 하시겠습니까?
- 18. 해시 배열에서 해시 배열을 반복하는 방법
- 19. 해시 배열을 루비에 배열로 포함하는 해시
- 20. 배열을 사용하여 mysql 테이블을 쿼리하는 방법은 무엇입니까?
- 21. 해시 테이블을 함수 입력으로 사용
- 22. 해시 배열을 해시 속성으로 인덱싱 된 해시 해시로 변환
- 23. 일관된 키가없는 해시 배열에서 테이블을 생성하려면 어떻게해야합니까?
- 24. ActiveRecord의 해시 배열을 직렬화하는 방법?
- 25. 해시 배열을 배열에 저장 하시겠습니까?
- 26. 해시 값 배열을 업데이트하려면 어떻게해야합니까?
- 27. 배열을 사용하여 해시 테이블 대신 "목록"을 구현하는 이유는 무엇입니까?
- 28. android에서 큰 해시 테이블을 처리하십시오.
- 29. android에있는 파일에 해시 테이블을 직렬화하기
- 30. JavaScript에서 해시 테이블을 구현하는 방법
해시 테이블은 비교 기반 매핑과 완전히 다른 주장입니다. 이러한 차이점은 이론적으로나 후드 에서뿐만 아니라 키 요구 사항과 관련이 있습니다. 해시 테이블에는 해시 함수와 평등이 필요하며 다른 해시 테이블에는 전체 순서가 필요합니다. – delnan
@delnan : OP.My 관점을 해석하는 방법에 따라 'HashTable'은'Dictionary' 데이터 구조의 구현/확장입니다. 그것은'Dictionary'의 인터페이스를 제공합니다. 추상 데이터 구조는 다양한 구현 예를 가질 수있다. 배열이나 TreeMap에 의해 뒷받침되는'HashTable'을 의미합니다. * 당신이 * yes *를 제안 할만큼 엄격한 정의를 취한다면, * 해시 함수를 의미하는'HashTable'은 배열에 의해서만 지원 될 수 있습니다 – Cratylus
답장을 보내 주셔서 감사 드리며 늦게 답변을 드려 죄송합니다. 언제든지 stackoverflow에서 다시 확인하는 것을 잊어 버렸습니다. 다시 한 번 감사드립니다. – psyko666