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‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
defheapify(unsorted,index,heap_size):
2+
largest=index
3+
left_index=2*index+1
4+
right_index=2*index+2
5+
ifleft_index<heap_sizeandunsorted[left_index] >unsorted[largest]:
6+
largest=left_index
7+
8+
ifright_index<heap_sizeandunsorted[right_index] >unsorted[largest]:
9+
largest=right_index
10+
11+
iflargest!=index:
12+
unsorted[largest],unsorted[index] =unsorted[index],unsorted[largest]
13+
heapify(unsorted,largest,heap_size)
14+
15+
defheap_sort(unsorted):
16+
n=len(unsorted)
17+
foriinrange (n/2-1 , -1, -1) :
18+
heapify(unsorted,i,n)
19+
foriinrange(n-1, -1, -1):
20+
unsorted[0], unsorted[i] =unsorted[i], unsorted[0]
21+
heapify(unsorted,0,i)
22+
returnunsorted
23+
24+
25+
if__name__=='__main__':
26+
importsys
27+
ifsys.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) foriteminuser_input.split(',')]
34+
printheap_sort(unsorted)
35+

0 commit comments

Comments
(0)