Skip to content

Commit 07e7c3f

Browse files
authored
Heapsort.py
Here is the total python code for Heap-sort algorithm. Modification is always welcome!!!
1 parent edde17f commit 07e7c3f

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

Heapsort.py

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Python program for implementation of heap Sort
2+
3+
# To heapify subtree rooted at index i.
4+
# n is size of heap
5+
def heapify(arr, n, i):
6+
largest = i # Initialize largest as root
7+
l = 2 * i + 1 # left = 2*i + 1
8+
r = 2 * i + 2 # right = 2*i + 2
9+
10+
# See if left child of root exists and is
11+
# greater than root
12+
if l < n and arr[i] < arr[l]:
13+
largest = l
14+
15+
# See if right child of root exists and is
16+
# greater than root
17+
if r < n and arr[largest] < arr[r]:
18+
largest = r
19+
20+
# Change root, if needed
21+
if largest != i:
22+
arr[i],arr[largest] = arr[largest],arr[i] # swap
23+
24+
# Heapify the root.
25+
heapify(arr, n, largest)
26+
27+
# The main function to sort an array of given size
28+
def heapSort(arr):
29+
n = len(arr)
30+
31+
# Build a maxheap.
32+
for i in range(n, -1, -1):
33+
heapify(arr, n, i)
34+
35+
# One by one extract elements
36+
for i in range(n-1, 0, -1):
37+
arr[i], arr[0] = arr[0], arr[i] # swap
38+
heapify(arr, i, 0)
39+
40+
41+
# Driver code to test above
42+
arr = [ 12, 11, 13, 5, 6, 7]
43+
heapSort(arr)
44+
n = len(arr)
45+
print ("Sorted array is")
46+
for i in range(n):
47+
print ("%d" %arr[i]),
48+
# This code is contributed by Argho Chakraborty!!!

0 commit comments

Comments
 (0)