Top k问题时间复杂度分析:(从n个数中找出前k大的数)
1.建立一个大小为k的小根堆:O(k)(自底向上建立)
2.遍历n个数:O(n)
3.找到比堆顶大的元素后,删除堆顶元素:O(log(k))
4.该元素进堆:O(log(k))
综上:时间复杂度:O(n log k)
Top k问题时间复杂度分析:(从n个数中找出前k大的数)
1.建立一个大小为k的小根堆:O(k)(自底向上建立)
2.遍历n个数:O(n)
3.找到比堆顶大的元素后,删除堆顶元素:O(log(k))
4.该元素进堆:O(log(k))
综上:时间复杂度:O(n log k)