2017-11-27 15 views
0

해시 맵은 항목을 가져 오거나 제거하기 위해 O (1)을 사용합니다. 그것을 정렬하려면 Collections.sort()로 nlogn 시간이 걸립니다. 대신 treemap을 사용하면 추가하는 동안 정렬되므로 nlogn 정렬을 수행 할 필요가 없지만 nlogn은 물건을 찾는 데 걸립니다. 따라서 질문은 수동으로 해시 코드 방법을 사용하지 않고 대신 비교할 수 있도록 hashmap put 메서드를 직접 제어 할 수 있습니까? 많은 삽입 및 제거 및 많은 정렬 작업을 수행하기 위해 해시 맵을 사용하는 프로그램에 대해 O (1)을 찾고 있습니다.해시 맵에 정렬 된 방식으로 추가 (Java)

+3

'TreeMap'은 O (n log n)가 아닌 검색을위한 O (log n)입니다. –

+3

하지만 질문에 대답하는 것은 불가능합니다. 모든 것에 대해 (예상) O (1)를 가질 수없고 정렬 된 데이터 집합을 가질 수도 있습니다. –

+0

'TreeMap'의 문제점은 무엇입니까? –

답변

2

n 항목을 정렬하면 (거의 모든 경우) O(n log n) 시간이 소요됩니다. 이것은 증명할 수있는 사실입니다. 정렬 알고리즘의 범위에 대한 많은 정보는 Wikipedia on Sorting을 참조하십시오.