Skip to content

Commit 04d1569

Browse files
committed
added implementation for heap sort algorithm
1 parent 8d5be8a commit 04d1569

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

sorts/heap_sort.py

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
def heapify(unsorted,index,heap_size):
2+
largest = index
3+
left_index = 2*index + 1
4+
right_index = 2*index + 2
5+
if left_index < heap_size and unsorted[left_index] > unsorted[largest]:
6+
largest = left_index
7+
8+
if right_index < heap_size and unsorted[right_index] > unsorted[largest]:
9+
largest = right_index
10+
11+
if largest != index:
12+
unsorted[largest],unsorted[index] = unsorted[index],unsorted[largest]
13+
heapify(unsorted,largest,heap_size)
14+
15+
def heap_sort(unsorted):
16+
n=len(unsorted)
17+
for i in range (n/2 - 1 , -1, -1) :
18+
heapify(unsorted,i,n)
19+
for i in range(n - 1, -1, -1):
20+
unsorted[0], unsorted[i] = unsorted[i], unsorted[0]
21+
heapify(unsorted,0,i)
22+
return unsorted
23+
24+
25+
if __name__ == '__main__':
26+
import sys
27+
if sys.version_info.major < 3:
28+
input_function = raw_input
29+
else:
30+
input_function = input
31+
32+
user_input = input_function('Enter numbers separated by coma:\n')
33+
unsorted = [int(item) for item in user_input.split(',')]
34+
print heap_sort(unsorted)
35+

0 commit comments

Comments
 (0)