File tree 1 file changed +33
-0
lines changed
1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change
1
+ # heapify
2
+ def heapify (arr , n , i ):
3
+ largest = i # largest value
4
+ l = 2 * i + 1 # left
5
+ r = 2 * i + 2 # right
6
+ # if left child exists
7
+ if l < n and arr [i ] < arr [l ]:
8
+ largest = l
9
+ # if right child exits
10
+ if r < n and arr [largest ] < arr [r ]:
11
+ largest = r
12
+ # root
13
+ if largest != i :
14
+ arr [i ],arr [largest ] = arr [largest ],arr [i ] # swap
15
+ # root.
16
+ heapify (arr , n , largest )
17
+ # sort
18
+ def heapSort (arr ):
19
+ n = len (arr )
20
+ # maxheap
21
+ for i in range (n , - 1 , - 1 ):
22
+ heapify (arr , n , i )
23
+ # element extraction
24
+ for i in range (n - 1 , 0 , - 1 ):
25
+ arr [i ], arr [0 ] = arr [0 ], arr [i ] # swap
26
+ heapify (arr , i , 0 )
27
+ # main
28
+ arr = [2 ,5 ,3 ,8 ,6 ,5 ,4 ,7 ]
29
+ heapSort (arr )
30
+ n = len (arr )
31
+ print ("Sorted array is" )
32
+ for i in range (n ):
33
+ print (arr [i ],end = " " )
You can’t perform that action at this time.
0 commit comments