11004번 - K번째 수
처음 stl 의 sort를 쓰니까 시간오류가 나서 heapsort를 구현했더니 제출하면 런타임 에러가 뜨네요
그래서 mergesort를 써서 통과는 했는데 heapsort 구현을 잘못한건가요?
13번째 줄과 17번째 줄에서 배열 범위를 검사하기 전에 배열 내용을 먼저 읽고 있습니다. 이래서야 배열 범위 검사가 의미가 없습니다.
24번째 줄 루프 안에 25번째 줄 루프를 넣어버리면 알고리즘 성능이 O(n^2) 이 나옵니다.
제일 처음에 배열을 힙으로 만들 때에는 전체 배열에 대해서 heapify 를 해야 하지만
정수를 하나 뺀 뒤에는 그 뺀 정수 하나에 대해서만 heapify 를 해야 합니다.
초기 heapify후에는 root를 계속 빼니까 저렇게 수정해봤는데 여전히 시간초과가 뜨네요 ㅠㅠ 이것도 제가 힙을 잘못구현한 것일까요?
댓글을 작성하려면 로그인해야 합니다.
rhdtka21 5년 전
처음 stl 의 sort를 쓰니까 시간오류가 나서 heapsort를 구현했더니 제출하면 런타임 에러가 뜨네요
그래서 mergesort를 써서 통과는 했는데 heapsort 구현을 잘못한건가요?