w3resource

Python: Find the kth largest element in an unsorted array using Heap queue algorithm


7. Kth Largest Element

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 heap queue algorithm: Find the kth largest element in an unsorted array using Heap queue algorithm.

For more Practice: Solve these Related Problems:

  • Write a Python program to find the kth largest element in an unsorted list using heapq.nlargest and return the kth element.
  • Write a Python function that maintains a min-heap of size k to determine the kth largest number from a stream of integers.
  • Write a Python script to extract the kth largest element from an array using a heap-based approach and validate the result with sorting.
  • Write a Python program to compute the kth largest element in a list by using heapq to maintain a running heap of the top k elements.

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.



Follow us on Facebook and Twitter for latest update.