{"id":1588,"date":"2020-07-01T09:30:28","date_gmt":"2020-07-01T09:30:28","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1588"},"modified":"2023-11-23T12:44:33","modified_gmt":"2023-11-23T12:44:33","slug":"kth-largest-element","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/","title":{"rendered":"Kth Largest element"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png\" alt=\"\" \/><br \/>\nIn the realm of data structures, heaps stand out as an essential tool for efficient manipulation of priority-based information. One common problem encountered when dealing with heaps is finding the Kth largest element within them. Whether it&#8217;s a min-heap or a max-heap, determining the Kth largest element involves specific techniques that leverage the structure&#8217;s properties to optimize the search.<br \/>\nThis article delves into the intricacies of finding the Kth largest element in a heap, exploring various approaches and algorithms tailored for different types of heaps. From understanding the fundamentals of heaps to implementing algorithms for extracting the Kth largest element, this guide aims to provide a comprehensive overview of this problem-solving process. Basically, Given the heights of N buildings and an integer k, we have to find the height of kth highest building.<\/p>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/heaps\/KLRGE\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>How to Find Kth Largest Element?<\/h3>\n<blockquote>\n<p>Idea is to create a <strong>max-heap<\/strong> of heights of buildings, in order to get k<sup>th<\/sup> highest height we need go remove first <code>k-1<\/code> largest height. <\/p>\n<\/blockquote>\n<h4>Method 1 :<\/h4>\n<blockquote>\n<p>Sort the array containing heights of the buildings in decreasing order using any sorting algorithm. Now print the k<sup>th<\/sup> value in the array which is the k<sup>th<\/sup> highest height.<\/p>\n<\/blockquote>\n<h4>Method 2 :<\/h4>\n<ul>\n<li>\n<p>Geneate a <strong>max-heap<\/strong> from the heights of the buildings.<\/p>\n<\/li>\n<li>\n<p>In a <strong>max-heap<\/strong>, the root always stores the larger value as compared to its <strong>left<\/strong> &amp; <strong>right<\/strong> subtree, this condition needs to be true for every node. We need to insert each item one by one such that parent is always larger than the item itself. If parent is smaller, then swap the current item with its parent. <\/p>\n<\/li>\n<li>\n<p>After generating <strong>max-heap<\/strong> now <strong>extract<\/strong> first <code>k-1<\/code> heights from the heap. Among the remaining heights, the first element of the heap (<code>heap[0]<\/code>) is the <code>kth<\/code> highest element.<\/p>\n<\/li>\n<\/ul>\n<p><strong>extract()<\/strong>: Removes the maximum element from <strong>Max-Heap<\/strong>. Time Complexity of this Operation is O(Logn) as this operation needs to maintain the heap property (by calling <strong>heapify()<\/strong>) after removing root.<\/p>\n<p><strong>heapify()<\/strong>: Maintains the heap property for each node. If any node does not follow heap property it swaps the node with the node which is smaller ,or greater (in case of <strong>max-heap<\/strong>), than the node.<\/p>\n<h3>Algorithms :<\/h3>\n<h4>Insert() :<\/h4>\n<blockquote>\n<ol>\n<li>Insert the item at the last index, and increment the size by 1.<\/li>\n<li>Then, check if the inserted item is smaller than its parent,<\/li>\n<li>If yes, then swap the inserted item with its parent.<\/li>\n<li>If no, then do nothing.<\/li>\n<li>Now, go to step <code>2<\/code> and repeat untill we reach root (first element).<\/li>\n<\/ol>\n<\/blockquote>\n<h4>Extract() :<\/h4>\n<blockquote>\n<ol>\n<li>Store the value of the first node of our heap ( <code>temp = heap[0]<\/code> ).<\/li>\n<li>Replace the root node with the farthest right node (last element).<\/li>\n<li>Decrease the size by <code>1<\/code>. <code>(heap[0] = heap[size-1])<\/code><\/li>\n<li>Perform <strong>heapify<\/strong> starting from the new root. <\/li>\n<li>Return the stored value (<code>temp<\/code>).<\/li>\n<\/ol>\n<\/blockquote>\n<h4>Heapify ():<\/h4>\n<blockquote>\n<ol>\n<li>if the heap property holds true then you are done.<\/li>\n<li>else if<\/li>\n<li>the replacement node value &lt; its parent nodes value<br \/>\nthen swap them, and repeat step 3.<\/li>\n<li>else<\/li>\n<li>swap the replacement node with the largest child node, and<br \/>\nrepeat step 3.<\/li>\n<\/ol>\n<\/blockquote>\n<h3>Example:<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/klrge.png\" alt=\"\" \/><\/p>\n<h3>Solutions:<\/h3>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1602 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_1602 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_1602 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1602 .wpsm_nav-tabs > li.active > a, #tab_container_1602 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1602 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_1602 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_1602 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1602 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1602 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1602 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1602 .wpsm_nav-tabs > li > a:hover , #tab_container_1602 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_1602 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_1602 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_1602 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_1602 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_1602 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_1602 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_1602 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1602 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_1602 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1602 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_1602 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_1602\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1602\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1602_1\" aria-controls=\"tabs_desc_1602_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1602_2\" aria-controls=\"tabs_desc_1602_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1602_3\" aria-controls=\"tabs_desc_1602_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_1602\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_1602_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n #include&lt;stdio.h&gt;\r\n\r\n void swap(int *a, int *b)\r\n {\r\n *a = *a + *b;\r\n *b = *a - *b;\r\n *a = *a - *b;\r\n }\r\n\r\n void minHeapify(int a[], int size, int i)\r\n {\r\n int l = 2*i+1;\r\n int r = 2*i+2;\r\n int smallest = i;\r\n if(l&lt;size &amp;&amp; a[l]&lt;a[smallest])\r\n      smallest = l;\r\n if(r&lt;size &amp;&amp; a[r]&lt;a[smallest])\r\n      smallest = r;\r\n if(smallest!=i)\r\n {\r\n      swap(&amp;a[i],&amp;a[smallest]);\r\n      minHeapify(a,size,smallest);\r\n }\r\n\r\n }\r\n\r\n\r\n void buildMinHeap(int a[], int size) {\r\n for(int i=size\/2;i&gt;=0;i--)\r\n      minHeapify(a,size,i);\r\n\r\n }\r\n\r\n\r\n int kthLargest(int a[], int size, int k)\r\n {\r\n int minHeap[k];\r\n int i;\r\n for(i=0;i&lt;k;i++)\r\n      minHeap[i] = a[i];\r\n buildMinHeap(minHeap,k);\r\n for(i=k;i&lt;size;i++)\r\n {\r\n      if(a[i]&gt;minHeap[0])\r\n      {\r\n           minHeap[0]=a[i];\r\n           minHeapify(minHeap,k,0);\r\n      }\r\n }\r\n return minHeap[0];\r\n }\r\n\r\n\r\n int main() {\r\n int t;\r\n scanf(&quot;%d&quot;,&amp;t);\r\n while(t--)\r\n {\r\n int n,k;\r\n scanf(&quot;%d %d&quot;,&amp;n,&amp;k);\r\n int a[n+1];\r\n for(int i=0;i&lt;n;i++)\r\n      scanf(&quot;%d&quot;,&amp;a[i]);\r\n printf(&quot;%d&#92;n&quot;,kthLargest(a,n,k));\r\n }\r\n return 0;\r\n }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1602_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nint parent(int i)\r\n{\r\n     return (i-1)\/2;\r\n}\r\n\r\nint left(int i)\r\n{\r\n     return (i*2)+1;\r\n}\r\n\r\nint right(int i)\r\n{\r\n     return (i*2)+2;\r\n}\r\n\r\nvoid swap(int *a,int *b)\r\n{\r\n     int temp = *a;\r\n     *a = *b;\r\n     *b = temp;\r\n}\r\n\r\nvoid insert(int heap[],int *size, int val)\r\n{\r\n     heap[*size]= val;\r\n     int i = *size;\r\n     (*size)++;\r\n     while(i!=0 &amp;&amp; heap[parent(i)]&gt;heap[i])\r\n     {\r\n     swap(&amp;heap[parent(i)],&amp;heap[i]);\r\n     i = parent(i);\r\n     }\r\n}\r\n\r\nvoid heapify(int heap[],int i,int size)\r\n{\r\n     int l = left(i);\r\n     int r = right(i);\r\n     int lar = i;\r\n     if(lar&lt;size &amp;&amp; heap[l]&lt;heap[i])\r\n        lar = l;\r\n     if(r&lt;size &amp;&amp; heap[r]&lt;heap[lar])\r\n        lar = r;\r\n     if(lar!=i)\r\n     {\r\n     swap(&amp;heap[i],&amp;heap[lar]);\r\n     heapify(heap,lar,size);\r\n     }\r\n}\r\n\r\nint extract(int heap[],int *size)\r\n{\r\n     int root = heap[0];\r\n     heap[0] = heap[*size-1];\r\n     (*size)--;\r\n     heapify(heap,0,*size);\r\n     return root;\r\n}\r\n\r\n\r\n int main()\r\n {\r\n   int t;\r\n   cin&gt;&gt;t;\r\n   while(t--)\r\n   {\r\n   int n,k;\r\n   cin&gt;&gt;n&gt;&gt;k;\r\n   int *heap = (int *)malloc(sizeof(int)*n);\r\n   int size = 0;\r\n   for(int i=0;i&lt;n;i++)\r\n   {\r\n   int t;\r\n   cin&gt;&gt;t;\r\n   insert(heap,&amp;size,t);\r\n   }\r\n    while(--k)\r\n    {\r\n     extract(heap,&amp;size);\r\n    }\r\n    cout&lt;&lt;extract(heap,&amp;size)&lt;&lt;endl;\r\n  }\r\nreturn 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1602_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n import java.util.*;\r\n import java.io.*;\r\n\r\n public class Main {\r\n\r\n static int size = 0;\r\n public int findKthLargest(int[] nums, int k) {\r\n this.size = nums.length;\r\n int ans = 0;\r\n int last = (this.size-1)\/2;\r\n for(int i=last;i&gt;=0;i--)\r\n      downheapify(nums,i);\r\n for(int i=1;i&lt;=k;i++)\r\n      ans = remove(nums);\r\n return ans;\r\n }\r\n public static void main(String args[]) throws IOException {\r\n\r\n Scanner sc = new Scanner(System.in);\r\n int t = sc.nextInt();\r\n while(t--&gt;0)\r\n {\r\n      Main m = new Main();\r\n      int n= sc.nextInt();\r\n      int k = sc.nextInt();\r\n      int []a = new int[n];\r\n      for(int i=0;i&lt;n;i++)\r\n      {a[i]= sc.nextInt();}\r\n      System.out.println(m.findKthLargest(a,k));\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n public void swap(int []nums,int i, int j) {\r\n      int temp = nums[i];\r\n nums[i] = nums[j];\r\n nums[j] = temp;\r\n }\r\n\r\n public int remove(int []nums) {\r\n      swap(nums,0,this.size - 1);\r\n      int temp = nums[this.size - 1];\r\n this.size--;\r\n      downheapify(nums,0);\r\n      return temp;\r\n }\r\n\r\n public void downheapify(int []nums,int pi) {\r\n\r\n      int mini = pi;\r\n      int li = 2 * pi + 1;\r\n      int ri = 2 * pi + 2;\r\n\r\n      if (li &lt; this.size &amp;&amp; nums[li] &gt; nums[mini])\r\n           mini = li;\r\n\r\n      if (ri &lt; this.size &amp;&amp; nums[ri] &gt; nums[mini])\r\n           mini = ri;\r\n\r\n      if (mini != pi) {\r\n           swap(nums,mini, pi);\r\n           downheapify(nums,mini);\r\n      }\r\n   }\r\n\r\n }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_1602 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_1602 a\"),jQuery(\"#tab-content_1602\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p>[forminator_quiz id=&quot;1608&quot;]<\/p>\n<p><strong>Conclusion<\/strong><br \/>\nIn conclusion, the quest to find the Kth largest element in a heap unveils a blend of concepts from heap data structures and algorithms for efficient traversal and extraction. By leveraging the properties inherent in heaps \u2013 be it a min-heap or max-heap \u2013 specific algorithms have been designed to swiftly identify and extract the Kth largest element.<\/p>\n<p>Understanding the principles governing heaps, exploring efficient traversal techniques, and applying suitable algorithms tailored to the type of heap at hand are key to successfully solving this problem. As demonstrated, mastering these concepts empowers developers and computer scientists to optimize their code and tackle similar challenges in diverse applications.<\/p>\n<h2>FAQ Related to the Kth Largest Element using Heap:<\/h2>\n<p>Here are some FAQs related to Kth Largest Element using Heap.<\/p>\n<p><strong>1. What is a heap in data structures?<\/strong><br \/>\nA heap is a specialized tree-based data structure that satisfies the heap property. In a min-heap, for any given node, the value of the node is less than or equal to the values of its children. Conversely, in a max-heap, the value of the node is greater than or equal to its children&#8217;s values.<\/p>\n<p><strong>2. How do you find the Kth largest element in a heap?<\/strong><br \/>\nTo find the Kth largest element in a heap, you can perform a traversal and extraction approach. For a max-heap, you can iteratively extract the maximum element K times, resulting in the Kth largest element. For a min-heap, you can convert it into a max-heap or use a different approach like traversing the heap to identify the Kth largest element efficiently.<\/p>\n<p><strong>3. Can the Kth largest element be found efficiently in a heap?<\/strong><br \/>\nYes, the Kth largest element can be found efficiently in a heap using various algorithms. These approaches often take advantage of heap properties, such as heapifying or performing traversals with optimized time complexities, achieving efficient extraction of the Kth largest element.<\/p>\n<p><strong>4. What are the applications of finding the Kth largest element in a heap?<\/strong><br \/>\nFinding the Kth largest element in a heap has applications in various domains, including algorithms for finding medians, solving problems related to priority queues, optimizing search algorithms, and in scenarios requiring efficient extraction of top-K elements from a dataset.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the realm of data structures, heaps stand out as an essential tool for efficient manipulation of priority-based information. One common problem encountered when dealing with heaps is finding the Kth largest element within them. Whether it&#8217;s a min-heap or a max-heap, determining the Kth largest element involves specific techniques that leverage the structure&#8217;s properties [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[131],"tags":[],"class_list":["post-1588","post","type-post","status-publish","format-standard","hentry","category-heap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Heap | Kth Largest Element | Prepbytes<\/title>\n<meta name=\"description\" content=\"Idea Is to Create a Max-heap of Heights of Buildings, in Order to Get Kth Highest Height We Need Go Remove First K-1 Largest Height.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Heap | Kth Largest Element | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Idea Is to Create a Max-heap of Heights of Buildings, in Order to Get Kth Highest Height We Need Go Remove First K-1 Largest Height.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-01T09:30:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-23T12:44:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Kth Largest element\",\"datePublished\":\"2020-07-01T09:30:28+00:00\",\"dateModified\":\"2023-11-23T12:44:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\"},\"wordCount\":859,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png\",\"articleSection\":[\"Heap\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\",\"name\":\"Heap | Kth Largest Element | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png\",\"datePublished\":\"2020-07-01T09:30:28+00:00\",\"dateModified\":\"2023-11-23T12:44:33+00:00\",\"description\":\"Idea Is to Create a Max-heap of Heights of Buildings, in Order to Get Kth Highest Height We Need Go Remove First K-1 Largest Height.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Heap\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/heap\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Kth Largest element\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Heap | Kth Largest Element | Prepbytes","description":"Idea Is to Create a Max-heap of Heights of Buildings, in Order to Get Kth Highest Height We Need Go Remove First K-1 Largest Height.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/","og_locale":"en_US","og_type":"article","og_title":"Heap | Kth Largest Element | Prepbytes","og_description":"Idea Is to Create a Max-heap of Heights of Buildings, in Order to Get Kth Highest Height We Need Go Remove First K-1 Largest Height.","og_url":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:30:28+00:00","article_modified_time":"2023-11-23T12:44:33+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Kth Largest element","datePublished":"2020-07-01T09:30:28+00:00","dateModified":"2023-11-23T12:44:33+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/"},"wordCount":859,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png","articleSection":["Heap"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/kth-largest-element\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/","url":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/","name":"Heap | Kth Largest Element | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png","datePublished":"2020-07-01T09:30:28+00:00","dateModified":"2023-11-23T12:44:33+00:00","description":"Idea Is to Create a Max-heap of Heights of Buildings, in Order to Get Kth Highest Height We Need Go Remove First K-1 Largest Height.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/kth-largest-element\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101812724-Article_372.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/kth-largest-element\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Heap","item":"https:\/\/prepbytes.com\/blog\/category\/heap\/"},{"@type":"ListItem","position":3,"name":"Kth Largest element"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=1588"}],"version-history":[{"count":8,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1588\/revisions"}],"predecessor-version":[{"id":18364,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1588\/revisions\/18364"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}