Skip to content

Commit 54f3455

Browse files
Merge pull request codemistic#631 from vaibhav0726/patch-1
added heap sort algo in python
2 parents 12a26d0 + ef619bd commit 54f3455

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
def heapify(arr, N, i):
2+
largest = i
3+
l = 2 * i + 1
4+
r = 2 * i + 2
5+
6+
if l < N and arr[largest] < arr[l]:
7+
largest = l
8+
9+
if r < N and arr[largest] < arr[r]:
10+
largest = r
11+
12+
if largest != i:
13+
arr[i], arr[largest] = arr[largest], arr[i]
14+
15+
heapify(arr, N, largest)
16+
17+
def heapSort(arr):
18+
N = len(arr)
19+
20+
for i in range(N//2 - 1, -1, -1):
21+
heapify(arr, N, i)
22+
23+
for i in range(N-1, 0, -1):
24+
arr[i], arr[0] = arr[0], arr[i]
25+
heapify(arr, i, 0)
26+
27+
if __name__ == '__main__':
28+
arr = [12, 11, 13, 5, 6, 7]
29+
30+
heapSort(arr)
31+
N = len(arr)
32+
33+
print("Sorted array is")
34+
for i in range(N):
35+
print("%d" % arr[i], end=" ")
36+

0 commit comments

Comments
 (0)