2011-04-14 4 views
1

나는 하나의 루프를위한 프로그램을 가지고있다. 나는 먼저 비어있는 세트를 가지고있다. for 루프를 반복 할 때마다 최소한의 값을 엿보고 제거해야합니다. 또한 각 반복마다 0에서 8까지의 값을 집합에 추가 할 수 있습니다 (값은 무작위 임). 어떤 Java 데이터 구조를 사용해야합니까? 나는 버블 정렬을 ArrayList로 생각하고 첫 번째 인덱스를 꺼내는 것을 고려했다. 이 작업을 수행하는 가장 빠른 알고리즘을 찾고 있습니다.이 상황에서 최상의 데이터 구조 및 알고리즘은 무엇입니까?

답변

9

시도 PriorityQueue. 삽입 방법 (add(), remove())에 대해 O (log (n)) 시간을 제공합니다. 검색 방법의 일정 시간 (size(), peek()).

+0

삭제도 O (log (n))라고 말할 수 있습니다. –

+1

@j_random_hacker, 완료. –

+1

실제로 매우 기능적인 'and()'를 포함하여 너무 많은 "and"s가 있습니다 : -P –

관련 문제