Selection Sort Program in C
C
// C program for implementation of selection sort #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; // One by one move boundary of unsorted subarray for (i = 0; i < n - 1; i++) { // Find the minimum element in unsorted array min_idx = i; for (j = i + 1; j < n; j++) if (arr[j] < arr[min_idx]) min_idx = j; // Swap the found minimum element with the first // element swap(&arr[min_idx], &arr[i]); } } /* Function to print an array */ void printArray( int arr[], int size) { int i; for (i = 0; i < size; i++) printf ( "%d " , arr[i]); printf ( "\n" ); } // Driver program to test above functions 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; } |
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.
C Program for Selection Sort
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.