tuwis00   5년 전

시간초과가되는데 원인이 뭔가요? 

djm03178   5년 전

heapify는 특정 원소 하나에 대해서 그 원소 아래로 힙 상태를 만들어주는 역할이지, N까지의 모든 원소에 대해 이 작업을 수행하는 건 build heap이라고 합니다. heapify는 O(logN) 시간이 걸리고, build heap은 이를 O(N)번 수행하므로 O(NlogN) 시간이 소요됩니다.

처음 원소를 넣어준 상태에서는 build heap을 한 번 해야 하는 것이고, heapsort에서 원소 하나씩을 빼낼 때마다 수행해야 하는 건 heapify입니다. 지금은 둘 모두에서 build heap을 수행하고 있고 heapsort의 루프가 O(N)번 도므로 총 O(N^2logN) 시간이 걸립니다. (버블 소트보다 안 좋습니다.)

tuwis00   5년 전

감사합니다 ㅜㅠ!!

댓글을 작성하려면 로그인해야 합니다.