Skip to content

Commit dffc39f

Browse files
authored
heap
1 parent 1b2cb3f commit dffc39f

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

heap_sort.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#Heap sorting
2+
3+
def heafy(arr, n, i):
4+
largest = i
5+
l = 2 * i + 1
6+
r = 2 * i + 2
7+
8+
if l < n and arr[i] < arr[l]:
9+
largest = l
10+
11+
if r < n and arr[largest] < arr[r]:
12+
largest = r
13+
14+
if largest != i:
15+
arr[i], arr[largest] = arr[largest], arr[i]
16+
17+
heafy(arr, n, largest)
18+
19+
def heap_sort(arr):
20+
n = len(arr)
21+
22+
for i in range(n, -1, -1):
23+
heafy(arr, n, i)
24+
25+
for i in range(n - 1, 0, -1):
26+
arr[i], arr[0] = arr[0], arr[i]
27+
heafy(arr, i, 0)
28+
29+
return arr
30+
31+
arr = [64, 34, 25, 12, 22, 11, 90]
32+
33+
print("Sorted array is:", heap_sort(arr))

0 commit comments

Comments
 (0)