File tree Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change 4
4
class MaxHeap (object ):
5
5
6
6
def __init__ (self , maxSize = None ):
7
- self .heap = [float ( "inf" )] # heap starting from index 1
7
+ self .heap = []
8
8
self .HEAP_SIZE = maxSize
9
9
10
10
def _swap (self ,i ,j ):
@@ -22,7 +22,7 @@ def insert(self, item):
22
22
self ._bubbleUp (len (self .heap )- 1 )
23
23
24
24
def _bubbleUp (self , currentPosition ):
25
- if currentPosition >= 2 : # no need to do bubbleUp for 1 element
25
+ if currentPosition >= 1 : # no need to do bubbleUp for 1 element
26
26
index = currentPosition
27
27
parrentIndex = index // 2
28
28
@@ -31,19 +31,19 @@ def _bubbleUp(self, currentPosition):
31
31
self ._bubbleUp (parrentIndex )
32
32
33
33
def peek (self ):
34
- return self .heap [1 ] if len ( self .heap ) > 1 else False
34
+ return self .heap [0 ] if self .heap else False
35
35
36
36
def pop (self ):
37
37
element = self .peek ()
38
38
if element :
39
- self ._swap (1 , len (self .heap ) - 1 )
39
+ self ._swap (0 , len (self .heap ) - 1 )
40
40
self .heap .pop ()
41
- self ._bubbleDown (1 )
41
+ self ._bubbleDown (0 )
42
42
return element
43
43
44
44
def _bubbleDown (self , index ):
45
- leftChildIndex = 2 * index
46
- rightChildIndex = 2 * index + 1
45
+ leftChildIndex = 2 * index + 1
46
+ rightChildIndex = 2 * index + 2
47
47
largest = index
48
48
if len (self .heap ) > leftChildIndex and self .heap [largest ] < self .heap [leftChildIndex ]:
49
49
largest = leftChildIndex
You can’t perform that action at this time.
0 commit comments