Skip to content

Commit c7ca05b

Browse files
authored
Added Implementation of sorting algorithms
1 parent f758f5d commit c7ca05b

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
def BubbleSort(array):
3+
4+
# Loop to access each array element
5+
for i in range(len(array)):
6+
for j in range(0,len(array)-1-i):
7+
# Replace > with < for descending order
8+
if array[j] > array[j+1]:
9+
10+
# Swapping elements if elements are not in the intended order
11+
temp = array[j]
12+
array[j] = array[j+1]
13+
array[j+1] = temp
14+
return array
15+
16+
17+
# Driver code
18+
if __name__ == '__main__':
19+
Array = [-1,9,21,34,1,5,6,8,10,23,25,27,31]
20+
print("Array before sorting: ", Array)
21+
print("Array after sorting: ", BubbleSort(Array))
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
def Heapify(Array, n, i):
3+
# Find largest among root and children
4+
largest = i
5+
l = 2 * i + 1
6+
r = 2 * i + 2
7+
8+
if l < n and Array[l] > Array[largest]:
9+
largest = l
10+
11+
if r < n and Array[r] > Array[largest]:
12+
largest = r
13+
14+
# If root is not largest, swap with largest and continue heapifying
15+
if largest != i:
16+
Array[i], Array[largest] = Array[largest], Array[i]
17+
Heapify(Array, n, largest)
18+
19+
20+
def HeapSort(Array):
21+
n = len(Array)
22+
23+
# Build a max heap
24+
for i in range(n//2, -1, -1):
25+
Heapify(Array, n, i)
26+
27+
# One by one extract elements
28+
for i in range(n-1, 0, -1):
29+
# Swap
30+
Array[i], Array[0] = Array[0], Array[i]
31+
32+
# Heapify root element
33+
Heapify(Array, i, 0)
34+
35+
36+
if __name__ == "__main__":
37+
Array = [-2, -3, -1, 11, 9, 12, 4, -5, -12, 6, 19, 20]
38+
HeapSort(Array)
39+
n = len(Array)
40+
print("Sorted array is")
41+
for i in range(n):
42+
print("%d " % Array[i], end='')
43+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
def selectionSort(Array, size):
3+
4+
for i in range(size):
5+
min_indx = i
6+
7+
for j in range(i+1, size):
8+
9+
# To sort in descending order, change > to < in this line
10+
# Select the minimum element in each loop
11+
if Array[j] < Array[min_indx]:
12+
min_indx = j
13+
14+
# Put minimum eement at the correct position
15+
(Array[i], Array[min_indx]) = (Array[min_indx], Array[i])
16+
return Array
17+
18+
if __name__ == "__main__":
19+
Array = [-2, -3, -1, 11, 9, 12, 4, -5, -12, 6, 19, 20]
20+
size = len(Array)
21+
print("Array before sorting: ", Array)
22+
Array = selectionSort(Array, size)
23+
print("Array after sorting: ", Array)

0 commit comments

Comments
 (0)