Write a C Program to Implement the Selection Sort Algorithm

Aim:

To write a program in C to sorting the elements using selection sort method.

Description:

• Selection sort is a simple sorting algorithm.
• This sorting algorithm is an in-place comparison-based algorithm in which the list is divided into two parts, the sorted part at the left end and the unsorted part at the right end.
• Initially, the sorted part is empty and the unsorted part is the entire list.
• The smallest element is selected from the unsorted array and swapped with the leftmost element, and that element becomes a part of the sorted array.
• This process continues moving unsorted array boundary by one element to the right.

Algorithm:

• Step 1 − Set MIN to location 0
• Step 2 − Search the minimum element in the list
• Step 3 − Swap with value at location MIN
• Step 4 − Increment MIN to point to next element
• Step 5 − Repeat until the list is sorted

Program:

```#include <stdio.h>
#include <stdlib.h>

int smallest(int arr[], int k, int n);
void selection_sort(int arr[], int n);
void main(int argc, char *argv[]) {
int arr[10], i, n;
printf("\n Enter the number of elements in the array: ");
scanf("%d", &n);
printf("\n Enter the elements of the array: ");
for(i=0;i<n;i++)
{
scanf("%d", &arr[i]);
}
selection_sort(arr, n);
printf("\n The sorted array is: \n");
for(i=0;i<n;i++)
printf(" %d\t", arr[i]);
}
int smallest(int arr[], int k, int n)
{
int pos = k, small=arr[k], i;
for(i=k+1;i<n;i++)
{
if(arr[i]< small)
{
small = arr[i];
pos = i;
}
}
return pos;
}
void selection_sort(int arr[],int n)
{
int k, pos, temp;
for(k=0;k<n;k++)
{
pos = smallest(arr, k, n);
temp = arr[k];
arr[k] = arr[pos];
arr[pos] = temp;
}
}```

Execution:

```Input:
10 8 9 6 7 5 4 2 3 1 10

Output:

Enter the number of elements in the array:
Enter the elements of the array:
The sorted array is:
1	 2	 3	 4	 5	 6	 7	 8	 9	 10	```

Result:

Thus, Implement of Selection Sort was executed successfully.