---
title: "How does a selection sort work for an array?"  
description: "How does a selection sort work for an array?"  
author: "Shrikant Mishra"  
published: 2020-11-03  
updated: 2020-11-03  
canonical: https://www.mindstick.com/forum/156066/how-does-a-selection-sort-work-for-an-array  
category: "c#"  
tags: ["c#", "array", "programming language"]  
reading_time: 2 minutes  

---

# How does a selection sort work for an array?

How does a [selection sort](https://www.mindstick.com/forum/95355/how-does-a-selection-sort-work-for-an-array) work for an [array](https://www.mindstick.com/articles/335/jagged-array-in-c-sharp-dot-net)?

## Replies

### Reply by Rahul Roi

These [selection](https://www.mindstick.com/blog/60/populate-records-in-second-listbox-according-to-the-selection-in-first-list-box) sort are the fairly intuitive [**sorting**](https://www.mindstick.com/forum/34473/sorting-by-date-in-webgrid-mvc) algorithm, though not necessarily efficient. Into this process, the smallest element is first located and switched with the element at subscript zero, thereby placing the smallest element in the first position. A minor element remaining in the subarray is then located next to subscripts 1 through n-1 and switched with the element at subscript 1, thereby placing the second smallest element in the second position. These steps are repeated in the same manner till the last element. The Selection sort is conceptually the simplest sorting algorithm. These algorithms will find the first a minor element in the array and swap it with the element in the first position, then it will find the second smallest element and exchange it with second position's element in that series, and It will keep doing this until the entire table is sorted. This is called selection sort because that repeatedly selects the next-smallest element and swaps it into the right place.

```
selectionSort(array, size)
  repeat (size - 1) times
  set the first unsorted element as the minimum
  for each of the unsorted elements
    if element < currentMinimum
      set element as new minimum
  swap minimum with first unsorted position
end selectionSort

#include <stdio.h>
void swap(int *a, int *b)
{
  int temp = *a;
  *a = *b;
  *b = temp;
}
void selectionSort(int array[], int size)
{
  for (int step = 0; step < size - 1; step++)
  {
    int min_idx = step;
    for (int i = step + 1; i < size; i++)
    {
      if (array[i] < array[min_idx])
        min_idx = i;
    }
    swap(&array[min_idx], &array[step]);
  }
}
void printArray(int array[], int size)
{
  for (int i = 0; i < size; ++i)
  {
    printf("%d  ", array[i]);
  }
  printf("\n");
}
int main()
{
  int data[] = {20, 12, 10, 15, 2};
  int size = sizeof(data) / sizeof(data[0]);
  selectionSort(data, size);
  printf("Sorted array in Acsending Order:\n");
  printArray(data, size);
}
```


---

Original Source: https://www.mindstick.com/forum/156066/how-does-a-selection-sort-work-for-an-array

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
