Python: Find the kth largest element in an unsorted array using Heap queue algorithm
Write a Python program to find the kth (1 <= k <= array's length) largest element in an unsorted array using the heap queue algorithm.
Sample Solution:
Python Code:
import heapq
class Solution(object):
def find_Kth_Largest(self, nums, k):
"""
:type nums: List[int]
:type of k: int
:return value type: int
"""
h = []
for e in nums:
heapq.heappush(h, (-e, e))
for i in range(k):
w, e = heapq.heappop(h)
if i == k - 1:
return e
arr_nums = [12, 14, 9, 50, 61, 41]
s = Solution()
result = s.find_Kth_Largest(arr_nums, 3)
print("Third largest element:",result)
result = s.find_Kth_Largest(arr_nums, 2)
print("\nSecond largest element:",result)
result = s.find_Kth_Largest(arr_nums, 5)
print("\nFifth largest element:",result)
Sample Output:
Third largest element: 41 Second largest element: 50 Fifth largest element: 12
Flowchart:
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to sort a given list of elements in ascending order using Heap queue algorithm.
Next: Write a Python program to compute maximum product of three numbers of a given array of integers using Heap queue algorithm.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics