{"id":8614,"date":"2022-06-23T05:37:38","date_gmt":"2022-06-23T05:37:38","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=8614"},"modified":"2023-05-12T06:48:24","modified_gmt":"2023-05-12T06:48:24","slug":"implementation-of-max-heap-in-python","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/","title":{"rendered":"Implementation of Max Heap in Python"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg\" alt=\"\" \/><\/p>\n<p>A heap is simply a binary tree with some additional rules that it has to follow. There are two rules which differentiate heap structures from any other tree structure.<\/p>\n<h2>Rules of Heap Data Structure in Python<\/h2>\n<p>These rules are: First, a heap must be a complete binary tree. Second, the parent node of a heap must be the \u2265 value of its children (max heap) or \u2264 value of its children (min-heap)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1683870769862-binary%20tree.png\" alt=\"\" \/><\/p>\n<p>A complete binary tree&#8217;s internal node must have a value larger than or equal to the value of its children for Max-Heap to operate correctly.<br \/>\nThe left child of a node put at position k in the array will be maintained at index 2k + 1, and the right child at index 2k + 2.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961610034-Image-01.png\" alt=\"\" \/><\/p>\n<h2>Representation of Max Heap<\/h2>\n<p>The Max heap is represented as an array. The below points show indexes of other nodes for the ith node, i.e. Arr[i]:<\/p>\n<ul>\n<li>Arr[(i \u2013 1) \/ 2] returns its parent node.<\/li>\n<li>Arr[(2 * i) + 1] returns its left child node.<\/li>\n<li>Arr[(2 * i) + 2] returns its right child node.<\/li>\n<\/ul>\n<p><strong>For Example 1:<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1656502561493-Image-02%20%281%29.png\" alt=\"\" \/><\/p>\n<p>For a node with value 6, its index value is 1 have left child is at (21) + 1 = 3 i.e. node with value 3 and right child is at (21) + 2 = 4 i.e. node with value 2. And we can see here that, both the children are bigger than their parent node.<\/p>\n<p><strong>For Example 2:<\/strong> Using the above rules of array representation we can represent a heap in the array:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1656502605634-Image-03%20%281%29.png\" alt=\"\" \/><\/p>\n<p>For a node with value 14, its index value is 2 have left child is at (22) + 1 = 5 i.e. node with value 6 and the right child is at (22) + 2 = 6 i.e. node with value 8. And we can see here that, both the children are smaller than their parent node. Also, its parent node will be at (2-1)\/2 = 0 i.e. node with value 18.<\/p>\n<h2>Operations on Max Heap in Python<\/h2>\n<ol>\n<li><strong>getMaximum():<\/strong> The root element of the maximum heap will be returned by this function. Its time complexity is O(1).<\/li>\n<li><strong>extractMaximum():<\/strong> The maximum element will be eliminated from the Maxheap using this function. This function, which has a time complexity of 0(Log n), calls the heapify function to retain the heap property after removing the root.<\/li>\n<li><strong>insertNode():<\/strong> It takes 0(Log n) time to insert a new key. We shall use this function to add a new key to the binary tree&#8217;s end. We need to correct the heap property that is broken in this case if the new key is smaller than its parent.<\/li>\n<\/ol>\n<p><strong>Note:<\/strong> We have to do indexing to simplify the below implementation.<\/p>\n<h2>Code Implementation of Max Heap in Python<\/h2>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_8615 {\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_8615 .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_8615 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_8615 .wpsm_nav-tabs > li.active > a, #tab_container_8615 .wpsm_nav-tabs > li.active > a:hover, #tab_container_8615 .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_8615 .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_8615 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_8615 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_8615 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_8615 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_8615 .wpsm_nav-tabs > li > a:hover , #tab_container_8615 .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_8615 .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_8615 .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_8615 .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_8615 .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_8615 .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_8615 .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_8615 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_8615 .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_8615 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_8615 .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_8615 .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_8615\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_8615\">\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_8615_1\" aria-controls=\"tabs_desc_8615_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>Python<\/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_8615\">\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_8615_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport sys\r\n\r\nclass MaxHeap:\r\n\r\n\tdef __init__(self, maxsize):\r\n\t\t\r\n\t\tself.maxsize = maxsize\r\n\t\tself.size = 0\r\n\t\tself.Heap = [0] * (self.maxsize + 1)\r\n\t\tself.Heap[0] = sys.maxsize\r\n\t\tself.FRONT = 1\r\n\r\n\tdef parent(self, pos):\r\n\t\t\r\n\t\treturn pos \/\/ 2\r\n\r\n\tdef leftChild(self, pos):\r\n\t\t\r\n\t\treturn 2 * pos\r\n\r\n\tdef rightChild(self, pos):\r\n\t\t\r\n\t\treturn (2 * pos) + 1\r\n\r\n\tdef isLeaf(self, pos):\r\n\t\t\r\n\t\tif pos >= (self.size\/\/2) and pos <= self.size:\r\n\t\t\treturn True\r\n\t\treturn False\r\n\r\n\tdef swap(self, fpos, spos):\r\n\t\t\r\n\t\tself.Heap[fpos], self.Heap[spos] = (self.Heap[spos], self.Heap[fpos])\r\n\r\n\tdef maxHeapify(self, pos):\r\n\r\n\t\tif not self.isLeaf(pos):\r\n\t\t\tif (self.Heap[pos] < self.Heap[self.leftChild(pos)] or\r\n\t\t\t\tself.Heap[pos] < self.Heap[self.rightChild(pos)]):\r\n\r\n\t\t\t\tif (self.Heap[self.leftChild(pos)] >\r\n\t\t\t\t\tself.Heap[self.rightChild(pos)]):\r\n\t\t\t\t\tself.swap(pos, self.leftChild(pos))\r\n\t\t\t\t\tself.maxHeapify(self.leftChild(pos))\r\n\r\n\t\t\t\telse:\r\n\t\t\t\t\tself.swap(pos, self.rightChild(pos))\r\n\t\t\t\t\tself.maxHeapify(self.rightChild(pos))\r\n\r\n\tdef insertNode(self, element):\r\n\t\t\r\n\t\tif self.size >= self.maxsize:\r\n\t\t\treturn\r\n\t\tself.size += 1\r\n\t\tself.Heap[self.size] = element\r\n\r\n\t\tcurrent = self.size\r\n\r\n\t\twhile (self.Heap[current] >\r\n\t\t\tself.Heap[self.parent(current)]):\r\n\t\t\tself.swap(current, self.parent(current))\r\n\t\t\tcurrent = self.parent(current)\r\n\r\n\tdef Print(self):\r\n\t\t\r\n\t\tfor i in range(1, (self.size \/\/ 2) + 1):\r\n\t\t\tprint(\"PARENT NODE : \" + str(self.Heap[i]) +\r\n\t\t\t\t\" LEFT CHILD : \" + str(self.Heap[2 * i]) +\r\n\t\t\t\t\" RIGHT CHILD : \" + str(self.Heap[2 * i + 1]))\r\n\r\n\tdef extractMaximum(self):\r\n\r\n\t\tpopped = self.Heap[self.FRONT]\r\n\t\tself.Heap[self.FRONT] = self.Heap[self.size]\r\n\t\tself.size -= 1\r\n\t\tself.maxHeapify(self.FRONT)\r\n\t\t\r\n\t\treturn popped\r\n\r\nif __name__ == \"__main__\":\r\n\t\r\n\tmaxHeap = MaxHeap(15)\r\n\tmaxHeap.insertNode(5)\r\n\tmaxHeap.insertNode(9)\r\n\tmaxHeap.insertNode(1)\r\n\tmaxHeap.insertNode(11)\r\n\tmaxHeap.insertNode(28)\r\n\tmaxHeap.insertNode(19)\r\n\tmaxHeap.insertNode(7)\r\n\tmaxHeap.insertNode(2)\r\n\tmaxHeap.insertNode(8)\r\n\r\n\tmaxHeap.Print()\r\n\t\r\n\tprint(\"The Max val is of Max Heap will be \" + str(maxHeap.extractMaximum()))\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_8615 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_8615 a\"),jQuery(\"#tab-content_8615\"));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><strong>Output:<\/strong><\/p>\n<pre><code>PARENT NODE : 28 LEFT CHILD : 11 RIGHT CHILD : 19\nPARENT NODE : 11 LEFT CHILD : 8 RIGHT CHILD : 9\nPARENT NODE : 19 LEFT CHILD : 1 RIGHT CHILD : 7\nPARENT NODE : 8 LEFT CHILD : 2 RIGHT CHILD : 5\nThe Max val is of Max Heap will be 28<\/code><\/pre>\n<h2>Implementation using Library Functions<\/h2>\n<p>When you want to remove the elements with the highest or lowest order\/priority, you use the heap. These elements can be accessed quickly in O(1) time thanks to the heap. However, since the heap is not ordered (we must cycle through all the nodes), locating other elements takes O(n) time. The heap only allows quick access to the lowest or greatest elements.<br \/>\nYou may generate a min heap or max heap in Python using the heapq package. By default, a heap created with the heapq function is always a min heap, which means that each time, the smallest element is removed from the heap.<\/p>\n<p>A few useful functions are available in the heapq module to carry out various operations on the heap data structure. Here are these functions:<\/p>\n<ul>\n<li><strong>heapify:<\/strong> In-place and in linear time, this function transforms an iterable into a heap data structure. The heap&#8217;s elements will be rearranged after calling this function such that it has the property of a min heap.<\/li>\n<li><strong>heappush:<\/strong> This function adds an element to a heap and, after insertion, modifies the order to preserve the heap&#8217;s structure. This action is completed in O(log(n)) time by the help push function, where n is the size of the heap.<\/li>\n<li><strong>heappop:<\/strong> The smallest element in a heap is removed by this function, and it is then returned. The order is then altered appropriately to preserve the heap&#8217;s structure. This process is completed by the heappop function in O(log(n)) time, where n is the heap&#8217;s size.<\/li>\n<li><strong>heappushpop:<\/strong> Elements can be pushed and removed from the heap using this function. The specified element* is first pushed to the heap by this function, after which the smallest element is pulled off the heap. This operation is completed in O(log(n)) time by the heappushpop function, where n is the size of the heap.<\/li>\n<li><strong>heapreplace:<\/strong> Additionally, this function pops and pushes elements in a heap. But instead, it &quot;pushes the provided element back into the heap&quot; after &quot;popping the smallest element* from the heap.&quot; This procedure is completed by the heapreplace function in O(log(n)) time, where n is the heap&#8217;s size.<\/li>\n<li><strong>nlargest:<\/strong> The k biggest elements from the heap are returned by this function. The size parameter supplied to the function, k, determines how long it takes to complete a task in O(log(k)) time.<\/li>\n<li><strong>nsmallest:<\/strong> From the heap, this function returns the k-smallest elements. The size parameter supplied to the function, k, determines how long it takes to complete a task in O(log(k)) time.<\/li>\n<\/ul>\n<p>Let\u2019s see the code implementation of a few functions from the heapq module in Python.<\/p>\n<p><strong>Code Implementation<\/strong><\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_8615 {\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_8615 .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_8615 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_8615 .wpsm_nav-tabs > li.active > a, #tab_container_8615 .wpsm_nav-tabs > li.active > a:hover, #tab_container_8615 .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_8615 .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_8615 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_8615 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_8615 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_8615 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_8615 .wpsm_nav-tabs > li > a:hover , #tab_container_8615 .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_8615 .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_8615 .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_8615 .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_8615 .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_8615 .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_8615 .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_8615 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_8615 .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_8615 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_8615 .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_8615 .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_8615\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_8615\">\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_8615_1\" aria-controls=\"tabs_desc_8615_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>Python<\/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_8615\">\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_8615_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport sys\r\n\r\nclass MaxHeap:\r\n\r\n\tdef __init__(self, maxsize):\r\n\t\t\r\n\t\tself.maxsize = maxsize\r\n\t\tself.size = 0\r\n\t\tself.Heap = [0] * (self.maxsize + 1)\r\n\t\tself.Heap[0] = sys.maxsize\r\n\t\tself.FRONT = 1\r\n\r\n\tdef parent(self, pos):\r\n\t\t\r\n\t\treturn pos \/\/ 2\r\n\r\n\tdef leftChild(self, pos):\r\n\t\t\r\n\t\treturn 2 * pos\r\n\r\n\tdef rightChild(self, pos):\r\n\t\t\r\n\t\treturn (2 * pos) + 1\r\n\r\n\tdef isLeaf(self, pos):\r\n\t\t\r\n\t\tif pos >= (self.size\/\/2) and pos <= self.size:\r\n\t\t\treturn True\r\n\t\treturn False\r\n\r\n\tdef swap(self, fpos, spos):\r\n\t\t\r\n\t\tself.Heap[fpos], self.Heap[spos] = (self.Heap[spos], self.Heap[fpos])\r\n\r\n\tdef maxHeapify(self, pos):\r\n\r\n\t\tif not self.isLeaf(pos):\r\n\t\t\tif (self.Heap[pos] < self.Heap[self.leftChild(pos)] or\r\n\t\t\t\tself.Heap[pos] < self.Heap[self.rightChild(pos)]):\r\n\r\n\t\t\t\tif (self.Heap[self.leftChild(pos)] >\r\n\t\t\t\t\tself.Heap[self.rightChild(pos)]):\r\n\t\t\t\t\tself.swap(pos, self.leftChild(pos))\r\n\t\t\t\t\tself.maxHeapify(self.leftChild(pos))\r\n\r\n\t\t\t\telse:\r\n\t\t\t\t\tself.swap(pos, self.rightChild(pos))\r\n\t\t\t\t\tself.maxHeapify(self.rightChild(pos))\r\n\r\n\tdef insertNode(self, element):\r\n\t\t\r\n\t\tif self.size >= self.maxsize:\r\n\t\t\treturn\r\n\t\tself.size += 1\r\n\t\tself.Heap[self.size] = element\r\n\r\n\t\tcurrent = self.size\r\n\r\n\t\twhile (self.Heap[current] >\r\n\t\t\tself.Heap[self.parent(current)]):\r\n\t\t\tself.swap(current, self.parent(current))\r\n\t\t\tcurrent = self.parent(current)\r\n\r\n\tdef Print(self):\r\n\t\t\r\n\t\tfor i in range(1, (self.size \/\/ 2) + 1):\r\n\t\t\tprint(\"PARENT NODE : \" + str(self.Heap[i]) +\r\n\t\t\t\t\" LEFT CHILD : \" + str(self.Heap[2 * i]) +\r\n\t\t\t\t\" RIGHT CHILD : \" + str(self.Heap[2 * i + 1]))\r\n\r\n\tdef extractMaximum(self):\r\n\r\n\t\tpopped = self.Heap[self.FRONT]\r\n\t\tself.Heap[self.FRONT] = self.Heap[self.size]\r\n\t\tself.size -= 1\r\n\t\tself.maxHeapify(self.FRONT)\r\n\t\t\r\n\t\treturn popped\r\n\r\nif __name__ == \"__main__\":\r\n\t\r\n\tmaxHeap = MaxHeap(15)\r\n\tmaxHeap.insertNode(5)\r\n\tmaxHeap.insertNode(9)\r\n\tmaxHeap.insertNode(1)\r\n\tmaxHeap.insertNode(11)\r\n\tmaxHeap.insertNode(28)\r\n\tmaxHeap.insertNode(19)\r\n\tmaxHeap.insertNode(7)\r\n\tmaxHeap.insertNode(2)\r\n\tmaxHeap.insertNode(8)\r\n\r\n\tmaxHeap.Print()\r\n\t\r\n\tprint(\"The Max val is of Max Heap will be \" + str(maxHeap.extractMaximum()))\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_8615 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_8615 a\"),jQuery(\"#tab-content_8615\"));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><strong>Output:<\/strong><\/p>\n<pre><code>The Head value of heap is : 28\nHeap elements are :\n28 11 19 8 9 1 7 2 5\nThe heap elements :\n19 11 7 8 9 1 5 2<\/code><\/pre>\n<p><strong>Conclusion<\/strong><br \/>\nWe had discussed multiple approaches for the implementation of the max heap in Python. Besides this, there is more logic for the max heap implementation in Python. Practice more to figure out that. Also, in this article, a brief about a few functions of the heap module in Python is given, implement all those function to grab more about Python and heap.<\/p>\n<h2>FAQ related to Max Heap in Python<\/h2>\n<p><strong>Q1. Where is the max heap used?<\/strong><br \/>\n<strong>Ans.<\/strong> There are two types of heaps: Min-heap and Max-heap. A min-heap is used to access the minimum element in the heap whereas the Max-heap is used when accessing the maximum element in the heap.<\/p>\n<p><strong>Q2. Why use heap in Python?<\/strong><br \/>\n<strong>Ans.<\/strong> The heap is used when you want to remove the highest or lowest order\/priority elements and it allows quick access to these elements in O(1) time.<\/p>\n<p><strong>Q3. Is a heap a tree?<\/strong><br \/>\n<strong>Ans.<\/strong> A heap is a tree-based data structure in which all the nodes of the tree are in a specific order.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A heap is simply a binary tree with some additional rules that it has to follow. There are two rules which differentiate heap structures from any other tree structure. Rules of Heap Data Structure in Python These rules are: First, a heap must be a complete binary tree. Second, the parent node of a heap [&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":[175,186],"class_list":["post-8614","post","type-post","status-publish","format-standard","hentry","category-heap","tag-heap","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Implementation of Max Heap in Python<\/title>\n<meta name=\"description\" content=\"Max heap is an efficient data structure used to store elements in order from largest to smallest. In this tutorial, we&#039;ll see how to implement max heap using python.\" \/>\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\/implementation-of-max-heap-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Implementation of Max Heap in Python\" \/>\n<meta property=\"og:description\" content=\"Max heap is an efficient data structure used to store elements in order from largest to smallest. In this tutorial, we&#039;ll see how to implement max heap using python.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/\" \/>\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=\"2022-06-23T05:37:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-12T06:48:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg\" \/>\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\/implementation-of-max-heap-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Implementation of Max Heap in Python\",\"datePublished\":\"2022-06-23T05:37:38+00:00\",\"dateModified\":\"2023-05-12T06:48:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/\"},\"wordCount\":1064,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg\",\"keywords\":[\"heap\",\"python\"],\"articleSection\":[\"Heap\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/\",\"name\":\"Implementation of Max Heap in Python\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg\",\"datePublished\":\"2022-06-23T05:37:38+00:00\",\"dateModified\":\"2023-05-12T06:48:24+00:00\",\"description\":\"Max heap is an efficient data structure used to store elements in order from largest to smallest. In this tutorial, we'll see how to implement max heap using python.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#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\":\"Implementation of Max Heap in Python\"}]},{\"@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":"Implementation of Max Heap in Python","description":"Max heap is an efficient data structure used to store elements in order from largest to smallest. In this tutorial, we'll see how to implement max heap using python.","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\/implementation-of-max-heap-in-python\/","og_locale":"en_US","og_type":"article","og_title":"Implementation of Max Heap in Python","og_description":"Max heap is an efficient data structure used to store elements in order from largest to smallest. In this tutorial, we'll see how to implement max heap using python.","og_url":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2022-06-23T05:37:38+00:00","article_modified_time":"2023-05-12T06:48:24+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg","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\/implementation-of-max-heap-in-python\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Implementation of Max Heap in Python","datePublished":"2022-06-23T05:37:38+00:00","dateModified":"2023-05-12T06:48:24+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/"},"wordCount":1064,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg","keywords":["heap","python"],"articleSection":["Heap"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/","url":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/","name":"Implementation of Max Heap in Python","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg","datePublished":"2022-06-23T05:37:38+00:00","dateModified":"2023-05-12T06:48:24+00:00","description":"Max heap is an efficient data structure used to store elements in order from largest to smallest. In this tutorial, we'll see how to implement max heap using python.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1655961585879-Article.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/implementation-of-max-heap-in-python\/#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":"Implementation of Max Heap in Python"}]},{"@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\/8614","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=8614"}],"version-history":[{"count":8,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/8614\/revisions"}],"predecessor-version":[{"id":16277,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/8614\/revisions\/16277"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=8614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=8614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=8614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}