#### Aim:

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

__Theory:__

#### 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.