3.1 Selection Sort

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

Selection Sort

Provided with a random integer array/list(ARR) of size N, you have been required to
sort this array using 'Selection Sort'.

Note:
Change in the input array/list itself. You don't need to return or print the
elements.

Input format :
The first line contains an Integer 't' which denotes the number of test cases or
queries to be run. Then the test cases follow.

First line of each test case or query contains an integer 'N' representing the size
of the array/list.

Second line contains 'N' single space separated integers representing the elements
in the array/list.

Output format :
For each test case, print the elements of the array/list in sorted order separated
by a single space.

Output for every test case will be printed in a separate line.

Constraints :
1 <= t <= 10^2
0 <= N <= 10^3

Time Limit: 1 sec

Sample Input 1:
1
7
2 13 4 1 3 6 28

Sample Output 1:
1 2 3 4 6 13 28

Sample Input 2:
2
5
9 3 6 2 0
4
4 3 2 1

Sample Output 2:
0 2 3 6 9
1 2 3 4

Code:

C++:

void selectionSort(int *arr, int n)


{
for (int i = 0; i < n; i++)
{

int mini = arr[i];


int minIndex = i;

for (int j = i; j < n; j++)


{

if (mini > arr[j])


{
mini = arr[j];
minIndex = j;
}
}

int tmp = arr[i];


arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}

Python:

from sys import stdin

def selectionSort(arr, n) :
for i in range(n) :
mini = arr[i]
minIndex = i

for j in range(i, n) :
if mini > arr[j] :
mini = arr[j]
minIndex = j

tmp = arr[i]
arr[i] = arr[minIndex]
arr[minIndex] = tmp;

def takeInput() :
n = int(stdin.readline().strip())
if n == 0 :
return list(), 0

arr = list(map(int, stdin.readline().strip().split(" ")))


return arr, n

def printList(arr, n) :
for i in range(n) :
print(arr[i], end = " ")
print()

#main
t = int(stdin.readline().strip())
while t > 0 :

arr, n = takeInput()
selectionSort(arr, n)
printList(arr, n)

t-= 1

Java:

public class Solution {

public static void selectionSort(int[] arr) {

for(int i = 0; i < arr.length; i++) {

int mini = arr[i];


int minIndex = i;

for(int j = i; j < arr.length; j++) {

if(mini > arr[j]) {


mini = arr[j];
minIndex = j;
}
}

int tmp = arr[i];


arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}

You might also like