You are on page 1of 3

The 

selection sort algorithm sorts an array by repeatedly finding the


minimum element (considering ascending order) from the unsorted part
and putting it at the beginning. 
The algorithm maintains two subarrays in a given array.
 The subarray which already sorted. 
 The remaining subarray was unsorted.
In every iteration of the selection sort, the minimum element (considering
ascending order) from the unsorted subarray is picked and moved to the
sorted subarray. 

In the selection sort technique, the list is divided into two parts. In one part all elements
are sorted and in another part the items are unsorted. At first we take the maximum or
minimum data from the array. After getting the data (say minimum) we place it at the
beginning of the list by replacing the data of first place with the minimum data. After
performing the array is getting smaller. Thus this sorting technique is done.

Algorithm
selectionSort(array, size)
Input: An array of data, and the total number in the array
Output: The sorted Array
Begin
   for i := 0 to size-2 do //find minimum from ith location to size
      iMin := i;
      for j:= i+1 to size – 1 do
         if array[j] < array[iMin] then
            iMin := j
      done
      swap array[i] with array[iMin].
   done
End
Example Code
#include<iostream>
using namespace std;
void swapping(int &a, int &b) {         //swap the content of a and b
   int temp;
   temp = a;
   a = b;
   b = temp;
}
void display(int *array, int size) {
   for(int i = 0; i<size; i++)
      cout << array[i] << " ";
   cout << endl;
}
void selectionSort(int *array, int size) {
   int i, j, imin;
   for(i = 0; i<size-1; i++) {
      imin = i;   //get index of minimum data
      for(j = i+1; j<size; j++)
         if(array[j] < array[imin])
            imin = j;
         //placing in correct position
         swap(array[i], array[imin]);
   }
}
int main() {
   int n;
   cout << "Enter the number of elements: ";
   cin >> n;
   int arr[n];           //create an array with given number of elements
   cout << "Enter elements:" << endl;
   for(int i = 0; i<n; i++) {
      cin >> arr[i];
   }
   cout << "Array before Sorting: ";
   display(arr, n);
   selectionSort(arr, n);
   cout << "Array after Sorting: ";
   display(arr, n);
}

You might also like