C Program for Selection Sort
Last Updated :
14 Jul, 2023
The selection sort algorithm sorts an array by repeatedly finding the minimum element (considering ascending order) from the unsorted subarray and putting it at the beginning of the sorted subarray. In this article, we will learn to write a C program to implement selection sort.
Approach
- Initialize minimum value min_idx to location 0.
- Traverse the array to find the minimum element in the array.
- While traversing if any element smaller than min_idx is found then swap both values.
- Then, increment min_idx to point to the next element.
- Repeat until the array is sorted.
Selection Sort Algorithm in C
selectionSort(array, size)
loop i from 0 to size - 2
set minIndex as i
loop j from first unsorted to size - 1
check if array[j] < array[minIndex]
set minIndex as j
swap array[i] with array[minIndex]
end for
end selectionSort
C
#include <stdio.h>
void swap( int * xp, int * yp)
{
int temp = *xp;
*xp = *yp;
*yp = temp;
}
void selectionSort( int arr[], int n)
{
int i, j, min_idx;
for (i = 0; i < n - 1; i++) {
min_idx = i;
for (j = i + 1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
swap(&arr[min_idx], &arr[i]);
}
}
void printArray( int arr[], int size)
{
int i;
for (i = 0; i < size; i++)
printf ( "%d " , arr[i]);
printf ( "\n" );
}
int main()
{
int arr[] = { 64, 25, 12, 22, 11 };
int n = sizeof (arr) / sizeof (arr[0]);
selectionSort(arr, n);
printf ( "Sorted array: \n" );
printArray(arr, n);
return 0;
}
|
Output
Sorted array:
11 12 22 25 64
Complexity Analysis of Selection Sort
Time Complexity: O(N2), as there are two nested loops.
Auxiliary Space: O(1), as the only extra memory used is for temporary variable while swapping two values in Array.
Working of Selection Sort in C
In each pass, the minimum element is identified from the unsorted part of the array and placed at the beginning of the sorted part of the array. The sorted portion of the array gradually grows with each pass until the entire array becomes sorted.
Let’s take the example of the above array and see what happens in each pass using the below illustration.
The resultant array is the sorted array.
Refer to the complete article on Selection Sort for a better understanding.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...