Skip to content

Commit adf25bb

Browse files
authored
Merge pull request #114 from dsrao711/issue_113
Python solution for insertion sorrt and selection sort
2 parents 37addb3 + 693fe75 commit adf25bb

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

Sorting Algorithms/insertion_sort.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
class Solution:
3+
def insert(self, alist, index, n):
4+
5+
sort = self.insertionSort(alist , n)
6+
return sort
7+
#Function to sort the list using insertion sort algorithm.
8+
def insertionSort(self, alist, n):
9+
10+
for i in range(1 , n):
11+
temp = alist[i]
12+
j = i - 1
13+
while(j >= 0 and temp < alist[j]):
14+
alist[j+1] = alist[j]
15+
j -= 1
16+
alist[j+1] = temp
17+
18+
19+
#{
20+
# Driver Code Starts
21+
if __name__=="__main__":
22+
t=int(input())
23+
for i in range(t):
24+
n=int(input())
25+
arr=list(map(int,input().split()))
26+
27+
Solution().insertionSort(arr,n)
28+
29+
for i in range(n):
30+
print(arr[i],end=" ")
31+
32+
print()
33+
# } Driver Code Ends

Sorting Algorithms/selection_sort.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
class Solution:
3+
def select(self, arr, i):
4+
5+
minimum = i
6+
j = i + 1
7+
for j in range(j , n):
8+
if(arr[j] < arr[minimum]):
9+
minimum = j
10+
return minimum
11+
12+
13+
def selectionSort(self, arr,n):
14+
15+
for i in range(0 , n):
16+
minimum = self.select(arr , i)
17+
if(minimum != i):
18+
arr[i] , arr[minimum] = arr[minimum] , arr[i]
19+
20+
21+
#{
22+
# Driver Code Starts
23+
24+
25+
if __name__ == '__main__':
26+
t = int(input())
27+
for _ in range(t):
28+
n = int(input())
29+
arr = list(map(int, input().strip().split()))
30+
Solution().selectionSort(arr, n)
31+
for i in range(n):
32+
print(arr[i],end=" ")
33+
print()
34+
# } Driver Code Ends

0 commit comments

Comments
 (0)