Kth Largest Element in an Array

From a set of data, this algorithm will find the largest element to kth largest element of the array.

This problem can be solved easily by sorting the array. We can sort them either in ascending order or in descending order. Solving it in descending order, we can get first k elements to find our result.

Input and Output

Input:
The elements of an array: {1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21}, K = 4
Output:
4 largest elements are 87 63 50 45

Algorithm

kthLargestElement(array, n, k)

Input: The array, number of elements in the array, place k.

Output: Display largest element to kth largest elements of the array.

<span class="typ">Begin</span><span class="pln">
   sort the array </span><span class="kwd">in</span><span class="pln"> </span><span class="kwd">descending</span><span class="pln"> order
   </span><span class="kwd">for</span><span class="pln"> i </span><span class="pun">:=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> to k</span><span class="pun">-</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">do</span><span class="pln">
      display array</span><span class="pun">[</span><span class="pln">i</span><span class="pun">]</span><span class="pln">
   </span><span class="kwd">done</span><span class="pln">
</span><span class="typ">End</span>

Example

<span class="com">#include</span><span class="str"><iostream></span><span class="pln">
</span><span class="com">#include</span><span class="str"><algorithm></span><span class="pln">
</span><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> std</span><span class="pun">;</span><span class="pln">

</span><span class="kwd">bool</span><span class="pln"> compare</span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> a</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> b</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">return</span><span class="pln"> a</span><span class="pun">></span><span class="pln">b</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> kthLargestElement</span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> array</span><span class="pun">[],</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> n</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> k</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   sort</span><span class="pun">(</span><span class="pln">array</span><span class="pun">,</span><span class="pln"> array</span><span class="pun">+</span><span class="pln">n</span><span class="pun">,</span><span class="pln"> compare</span><span class="pun">);</span><span class="pln">

   </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun"><</span><span class="pln"> k</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln">    </span><span class="com">//largest to kth largest element</span><span class="pln">
      cout </span><span class="pun"><<</span><span class="pln"> array</span><span class="pun">[</span><span class="pln">i</span><span class="pun">]</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> </span><span class="str">" "</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">int</span><span class="pln"> main</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">int</span><span class="pln"> array</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">23</span><span class="pun">,</span><span class="pln"> </span><span class="lit">12</span><span class="pun">,</span><span class="pln"> </span><span class="lit">9</span><span class="pun">,</span><span class="pln"> </span><span class="lit">30</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span><span class="pln"> </span><span class="lit">50</span><span class="pun">,</span><span class="pln"> </span><span class="lit">63</span><span class="pun">,</span><span class="pln"> </span><span class="lit">87</span><span class="pun">,</span><span class="pln"> </span><span class="lit">12</span><span class="pun">,</span><span class="pln"> </span><span class="lit">45</span><span class="pun">,</span><span class="pln"> </span><span class="lit">21</span><span class="pun">};</span><span class="pln">
   </span><span class="kwd">int</span><span class="pln"> n </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pun">;</span><span class="pln">
   </span><span class="kwd">int</span><span class="pln"> k </span><span class="pun">=</span><span class="pln"> </span><span class="lit">4</span><span class="pun">;</span><span class="pln">
   kthLargestElement</span><span class="pun">(</span><span class="pln">array</span><span class="pun">,</span><span class="pln"> n</span><span class="pun">,</span><span class="pln"> k</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span>

Output

87 63 50 45
Updated on: 2023-01-04T18:04:51+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements