{"id":1612,"date":"2020-07-01T09:30:23","date_gmt":"2020-07-01T09:30:23","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1612"},"modified":"2022-03-22T07:48:51","modified_gmt":"2022-03-22T07:48:51","slug":"kth-smallest-number","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/","title":{"rendered":"Kth Smallest Number"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>Heap<\/p>\n<\/blockquote>\n<h3>Difficulty Level<\/h3>\n<blockquote>\n<p>Easy<\/p>\n<\/blockquote>\n<h3>Problem Statement :<\/h3>\n<blockquote>\n<p>Given an array arr[ ] and a number <code>K<\/code> where <code>K<\/code> is smaller than the size of the array, the task is to find the <code>Kth<\/code> smallest element in the given array. It is given that all array elements are distinct.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/heaps\/KTHSMALNUM\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>Solution Approach :<\/h3>\n<h4>Introduction :<\/h4>\n<blockquote>\n<p>Idea is to create a <strong>min-heap<\/strong> then extract the first (k-1) elements.<br \/>\nNow print the first element of the heap.<\/p>\n<\/blockquote>\n<h4>Method 1 :<\/h4>\n<blockquote>\n<p>Sort the array in increasing order using any sorting algorithm. Now print the k<sup>th<\/sup> value in the array which is our <code>kth<\/code> smallest value.<\/p>\n<\/blockquote>\n<h4>Method 2 :<\/h4>\n<blockquote>\n<p>We will create a min-heap of size <code>n<\/code>. In a <strong>min-heap<\/strong>, the root always stores the smaller 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 it&#8217;s parent is always smaller than the item itself. If the parent is greater, then we need to swap the current item with its parent. <\/p>\n<p>In order to print the k<sup>th<\/sup> smallest element we need to <strong>extract()<\/strong> the first <code>k-1<\/code> elements and now print the first element of our heap.<\/p>\n<\/blockquote>\n<p><strong>extract()<\/strong>: Removes the minimum element from <strong>Min-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<blockquote>\n<p>Below is the algorithm of above approach.<\/p>\n<\/blockquote>\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.(<strong>temp<\/strong>)<\/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 then swap them, and repeat step 3.<\/li>\n<li>else<\/li>\n<li>swap the replacement node with the smallest child node, and repeat step 3.<\/li>\n<\/ol>\n<\/blockquote>\n<h4>Example:<\/h4>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/kthsmallnum.png\" alt=\"\" \/><\/p>\n<h3>Solutions:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1624 {\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_1624 .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_1624 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1624 .wpsm_nav-tabs > li.active > a, #tab_container_1624 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1624 .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_1624 .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_1624 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1624 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1624 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1624 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1624 .wpsm_nav-tabs > li > a:hover , #tab_container_1624 .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_1624 .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_1624 .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_1624 .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_1624 .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_1624 .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_1624 .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_1624 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1624 .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_1624 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1624 .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_1624 .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_1624\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1624\">\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_1624_1\" aria-controls=\"tabs_desc_1624_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_1624_2\" aria-controls=\"tabs_desc_1624_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_1624_3\" aria-controls=\"tabs_desc_1624_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_1624\">\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_1624_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      int parent(int i)\r\n      {\r\n      return (i-1)\/2;\r\n      }\r\n\r\n      int left(int i)\r\n      {\r\n      return (i*2)+1;\r\n      }\r\n\r\n      int right(int i)\r\n      {\r\n      return (i*2)+2;\r\n      }\r\n\r\n      void 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\n      void 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\n      void heapify(int heap[],int i,int size)\r\n      {\r\n      int l = left(i);\r\n      int r = right(i);\r\n      int s = i;\r\n      if(l&lt;size &amp;&amp; heap[l]&lt;heap[i])\r\n      s = l;\r\n      if(r&lt;size &amp;&amp; heap[r]&lt;heap[s])\r\n      s = r;\r\n      if(s!=i)\r\n      {\r\n      swap(&amp;heap[i],&amp;heap[s]);\r\n      heapify(heap,s,size);\r\n      }\r\n      }\r\n\r\n      int 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      scanf(\"%d\",&amp;t);\r\n      while(t--)\r\n      {\r\n      int n,k;\r\n      scanf(\"%d %d\",&amp;n,&amp;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           scanf(\"%d\",&amp;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      printf(\"%d&#92;n\",extract(heap,&amp;size));\r\n      }\r\n      return 0;\r\n      }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\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_1624_2\">\r\n\t\t\t\t\t\t\t\t\r\n<!-- 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 s = i;\r\n     if(l&lt;size &amp;&amp; heap[l]&lt;heap[i])\r\n        s = l;\r\n     if(r&lt;size &amp;&amp; heap[r]&lt;heap[s])\r\n        s = r;\r\n     if(s!=i)\r\n     {\r\n     swap(&amp;heap[i],&amp;heap[s]);\r\n     heapify(heap,s,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\nint 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;heap[0]&lt;&lt;endl;\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_1624_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 public static void main(String[] args) throws IOException {\r\n      Scanner sc = new Scanner(System.in);\r\n      int t=sc.nextInt();\r\n      while(t--&gt;0) {\r\n           int n = sc.nextInt();\r\n           int k = sc.nextInt();\r\n           MinHeap minHeap = new MinHeap(n);\r\n           for (int i = 0; i &lt; n; i++) {\r\n                minHeap.insert(sc.nextInt());\r\n           }\r\n\r\n           for(int i=0;i&lt;k-1;i++)\r\n           minHeap.remove();\r\n           System.out.println(minHeap.remove());\r\n\r\n      }\r\n      }\r\n\r\n }\r\n class MinHeap\r\n {\r\n private int[]Heap;\r\n private int size;\r\n private int maxSize;\r\n private static final int FRONT = 1;\r\n MinHeap(int maxSize)\r\n {\r\n      this.maxSize = maxSize;\r\n      size=0;\r\n      Heap = new int[this.maxSize+1];\r\n      Heap[0] = Integer.MIN_VALUE;\r\n }\r\n private int parent(int pos) {\r\n      return pos \/ 2;\r\n }\r\n private int leftChild(int pos)\r\n {\r\n      return (2*pos);\r\n }\r\n private int rightChild(int pos)\r\n {\r\n      return (2*pos)+1;\r\n }\r\n private boolean isLeaf(int pos)\r\n {\r\n      if(pos&gt;=(size\/2) &amp;&amp; pos&lt;=size)\r\n           return true;\r\n      return false;\r\n }\r\n private void swap(int fpos, int spos)\r\n {\r\n      int temp;\r\n      temp = Heap[fpos];\r\n      Heap[fpos]=Heap[spos];\r\n      Heap[spos]=temp;\r\n }\r\n private void minHeapify(int pos)\r\n {\r\n      int left = leftChild(pos);\r\n      int right = rightChild(pos);\r\n      int largest = pos;\r\n      if(left&lt;=size &amp;&amp; Heap[left]&lt;Heap[largest])\r\n           largest=left;\r\n      if(right&lt;=size &amp;&amp; Heap[right]&lt;Heap[largest])\r\n           largest = right;\r\n\r\n      if(largest!=pos)\r\n      {\r\n           swap(pos, largest);\r\n           minHeapify(largest);\r\n      }\r\n\r\n }\r\n void insert(int element)\r\n {\r\n      if(size&gt;=maxSize)\r\n           return;\r\n\r\n      Heap[++size]=element;\r\n      int i=size;\r\n      while(Heap[i]&lt;Heap[parent(i)])\r\n      {\r\n           swap(i,parent(i));\r\n           i=parent(i);\r\n      }\r\n }\r\n private void build_heap()\r\n {\r\n      int j=(int)Math.floor(size\/2.0);\r\n      for(int i=j;i&gt;=1;i--){\r\n           minHeapify(i);\r\n      }\r\n\r\n }\r\n public void heapSort(Writer wr) throws IOException {\r\n      build_heap();\r\n      int length=size;\r\n      for(int i=size;i&gt;=2;i--)\r\n      {\r\n           swap(1,i);\r\n           size--;\r\n           minHeapify(1);\r\n      }\r\n      size=length;\r\n      \/\/ printHeap(wr);\r\n\r\n }\r\n public int remove()\r\n {\r\n      int popped = Heap[FRONT];\r\n      Heap[FRONT] = Heap[size];\r\n      size=size-1;\r\n      minHeapify(FRONT);\r\n      return popped;\r\n }\r\n public void deleteKey(int i)\r\n {\r\n      decreaseKey(i, Integer.MIN_VALUE);\r\n      remove();\r\n }\r\n\r\n private void decreaseKey(int i, int new_val) {\r\n      Heap[i]=new_val;\r\n      while(i !=0 &amp;&amp; Heap[parent(i)]&gt;Heap[i])\r\n      {\r\n           swap(i,parent(i));\r\n           i=parent(i);\r\n      }\r\n }\r\n\r\n\r\n }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\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_1624 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_1624 a\"),jQuery(\"#tab-content_1624\"));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<br \/>\n[forminator_quiz id=&quot;1632&quot;]<\/p>\n<p>So, in this blog, we have tried to explain the concept of Heap. If you want to solve more questions on Heap, which are curated by our expert mentors at PrepBytes, you can follow this link <a href=\"#\">Heap<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used Heap Difficulty Level Easy Problem Statement : Given an array arr[ ] and a number K where K is smaller than the size of the array, the task is to find the Kth smallest element in the given array. It is given that all array elements are distinct. Solution Approach : Introduction : [&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":[1],"tags":[],"class_list":["post-1612","post","type-post","status-publish","format-standard","hentry","category-miscellaneous"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Heap | Kth Smallest Number | Prepbytes<\/title>\n<meta name=\"description\" content=\"Array Arr[ ] and a Number K Where K Is Smaller Than the Size of the Array, the Task Is to Find the Kth Smallest Element in the Given Array. Given That All Array Elements Are Distinct.\" \/>\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-smallest-number\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Heap | Kth Smallest Number | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Array Arr[ ] and a Number K Where K Is Smaller Than the Size of the Array, the Task Is to Find the Kth Smallest Element in the Given Array. Given That All Array Elements Are Distinct.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/\" \/>\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:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-22T07:48:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Kth Smallest Number\",\"datePublished\":\"2020-07-01T09:30:23+00:00\",\"dateModified\":\"2022-03-22T07:48:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/\"},\"wordCount\":441,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png\",\"articleSection\":[\"Miscellaneous\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/\",\"name\":\"Heap | Kth Smallest Number | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png\",\"datePublished\":\"2020-07-01T09:30:23+00:00\",\"dateModified\":\"2022-03-22T07:48:51+00:00\",\"description\":\"Array Arr[ ] and a Number K Where K Is Smaller Than the Size of the Array, the Task Is to Find the Kth Smallest Element in the Given Array. Given That All Array Elements Are Distinct.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Miscellaneous\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/miscellaneous\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Kth Smallest Number\"}]},{\"@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 Smallest Number | Prepbytes","description":"Array Arr[ ] and a Number K Where K Is Smaller Than the Size of the Array, the Task Is to Find the Kth Smallest Element in the Given Array. Given That All Array Elements Are Distinct.","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-smallest-number\/","og_locale":"en_US","og_type":"article","og_title":"Heap | Kth Smallest Number | Prepbytes","og_description":"Array Arr[ ] and a Number K Where K Is Smaller Than the Size of the Array, the Task Is to Find the Kth Smallest Element in the Given Array. Given That All Array Elements Are Distinct.","og_url":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:30:23+00:00","article_modified_time":"2022-03-22T07:48:51+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Kth Smallest Number","datePublished":"2020-07-01T09:30:23+00:00","dateModified":"2022-03-22T07:48:51+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/"},"wordCount":441,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png","articleSection":["Miscellaneous"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/","url":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/","name":"Heap | Kth Smallest Number | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png","datePublished":"2020-07-01T09:30:23+00:00","dateModified":"2022-03-22T07:48:51+00:00","description":"Array Arr[ ] and a Number K Where K Is Smaller Than the Size of the Array, the Task Is to Find the Kth Smallest Element in the Given Array. Given That All Array Elements Are Distinct.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/kth-smallest-number\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645101775712-Article_373.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/kth-smallest-number\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Miscellaneous","item":"https:\/\/prepbytes.com\/blog\/category\/miscellaneous\/"},{"@type":"ListItem","position":3,"name":"Kth Smallest Number"}]},{"@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\/1612","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=1612"}],"version-history":[{"count":11,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1612\/revisions"}],"predecessor-version":[{"id":8148,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1612\/revisions\/8148"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}