Selection Sort
CODE
Selection Sort
The selection sort
algorithm sorts an array by repeatedly finding the minimum element (considering
ascending order) from unsorted part and putting it at the beginning. The
algorithm maintains two subarrays in a given array.
1) The subarray
which is already sorted. 2) Remaining
subarray which is unsorted.
In every iteration
of selection sort, the minimum element (considering ascending order) from the
unsorted subarray is picked and moved to the sorted subarray.
// 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;
}
Output:
Sorted array:
11 12 22 25 64
Example:
arr[] = 64 25 12 22 11
// Find the minimum element in arr[0...4]
// and place it at beginning
11 25 12 22 64
// Find the minimum element in arr[1...4]
// and place it at beginning of arr[1...4]
11 12 25 22 64
// Find the minimum element in arr[2...4]
// and place it at beginning of arr[2...4]
11 12 22 25 64
// Find the minimum element in arr[3...4]
// and place it at beginning of arr[3...4]
11 12 22 25 64
Selection Sort
Reviewed by Unknown
on
August 29, 2018
Rating:
No comments:
If you have any doubt or query ,comment below: