Skip to content

Commit 08f40a7

Browse files
Heap Sort Algorithm
1 parent b3dbce6 commit 08f40a7

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

Diff for: Heap_Sort.py

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

0 commit comments

Comments
 (0)