Description
* In selection sort
1. In first iteration, find minimum element and swap with first position
2. In second iteration, find second minimum element and swap with second position
3. Do this n-1 times to sort the array
* Time Complexity: O(n2)
-> Selection sort is generally used for sorting files with very large
objects (records) and small keys.
-> It is simple and easy to implement.
-> It can be used for small data sets.
C/C++
/* C program of selection sort */
//Save it as SelectionSort.c
#include<stdio.h>
int main()
{
int i,n;
printf("Enter the size of array : ");
scanf("%d",&n);
int arr[n];
printf("\nEnter element : ");
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
//Calling function to sort array
selectionSort(arr,n);
//Finally printing the sorted array
printf("\nThe Sorted array is : ");
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
void selectionSort(int arr[], int n){
int i, j, minIndex;
for(i=0;i<n-1;i++){
minIndex = i;
for(j=(i+1);j<n;j++){
if(arr[j] < arr[minIndex]){
minIndex = j;
}
}
swap(&arr[i],&arr[minIndex]);
}
}
//Function to swap number
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
Input: Enter the size of array : 7 Enter element : 23 56 54 83 29 5 63 Output: The Sorted array is : 5 23 29 54 56 63 83
Java
/* Java program of selection sort */
//Save it as SelectionSort.java
import java.io.*;
import java.util.Scanner;
public class SelectionSort {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i,n;
System.out.println("Enter the size of array : ");
n = scanner.nextInt();
int arr[] = new int[n];
System.out.println("Enter element : ");
for(i=0;i<n;i++)
{
arr[i] = scanner.nextInt();
}
//Calling function to sort array
selectionSort(arr,n);
System.out.println("\nThe Sorted array is : ");
for(i=0;i<n;i++)
{
System.out.print(arr[i]+ " ");
}
}
private static void selectionSort(int[] arr, int n) {
int i, j, minIndex;
for(i=0;i<n-1;i++) {
minIndex = i;
for(j=(i+1);j<n;j++) {
if(arr[j]<arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
Input: Enter the size of array : 5 Enter element : 23 45 62 82 6 Output The Sorted array is : 6 23 45 62 82
Related programs
1) Bubble Sort2) Insertion Sort
3) Program of Merge Sort
4) Quick Sort