• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Array.Sort()와 PriorityQueue의 차이

21.06.30 01:09 작성 조회수 315

0

제일 좋은 후보를 찾기해서는 PriorityQueue말고 배열의 내림차순을 할 수 있는 Array.Sort()도 사용 가능 할것 같은데 두 함수 사이의 성능차이가 커서 사용을 하시지 않은 것 인가요?

답변 1

답변을 작성해보세요.

3

PriorityQueue는 성능 O(logN)이고,
그냥 배열에 있는 애 중 하나를 쭉 스캔하면서 제일 좋은 후보를 찾으면 O(N)이고
Array.Sort는 O(NlogN)으로 제일 느립니다.

가장 우수한 후보 1개만을 뽑으면 되는데,
데이터 N개를 모두 정렬하는 수고를 굳이 할 필요가 없겠죠.
logN >> N >> NlogN 셋 차이는 완전 넘사벽으로 어마무시합니다.
데이터가 1억개라도 logN은 몇십번의 연산으로 끝내지만
N이나 NlogN은 연산 몇억번이 필요합니다.