You are here

Selection sort in C

Selection sort
Selection sort in C to sort numbers of an array in ascending order. With a little modification, it arranges numbers in descending order.

Selection sort algorithm (for ascending order): Find the minimum element in the array and swap it with the element in the 1st position. Find the minimum element again in the remaining array[2, n] and swap it with the element at 2nd position, now we have two elements at their correct positions. We have to do this n-1 times to sort the array.

Selection sort program in C

#include <stdio.h>

int main()
{
  int array[100], n, c, d, position, t;

  printf("Enter number of elements\n");
  scanf("%d", &n);

  printf("Enter %d integers\n", n);

  for (c = 0; c < n; c++)
    scanf("%d", &array[c]);

  for (c = 0; c < (n - 1); c++) // finding minimum element (n-1) times
  {
    position = c;

    for (d = c + 1; d < n; d++)
    {
      if (array[position] > array[d])
        position = d;
    }
    if (position != c)
    {
      t = array[c];
      array[c] = array[position];
      array[position] = t;
    }
  }

  printf("Sorted list in ascending order:\n");

  for (c = 0; c < n; c++)
    printf("%d\n", array[c]);

  return 0;
}

Output of program:
Selection sort C program output

Download Selection sort program.

Share this