# C program to implement selection sort using recursion

In this tutorial, we will learn how to implement selection sort using recursion in C language? By Nidhi Last updated : August 03, 2023

## Problem statement

Create an array of integers with 5 items, then sort the array elements using selection sort with the recursion.

## C program to implement selection sort using recursion

The source code to implement selection sort using recursion is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.

```// C program to implement selection sort
// using recursion

#include <stdio.h>

void SelectionSort(int arr[], int i, int j, int len, int flag)
{
if (i < len - 1) {
if (flag)
j = i + 1;

if (j < len) {
if (arr[i] > arr[j]) //Swap numbers
{
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
SelectionSort(arr, i, j + 1, len, 0);
}
SelectionSort(arr, i + 1, 0, len, 1);
}
}

int main()
{
int arr[] = { 23, 10, 46, 21, 75 };
int i = 0;

printf("Array before sorting: \n");
for (i = 0; i < 5; i++)
printf("%d  ", arr[i]);

SelectionSort(arr, 0, 0, 5, 1);

printf("\nArray after sorting: \n");
for (i = 0; i < 5; i++)
printf("%d  ", arr[i]);

printf("\n");

return 0;
}
```

## Output

```Array before sorting:
23  10  46  21  75
Array after sorting:
10  21  23  46  75
```

## Explanation

Here, we created two functions SelectionSort() and main(). The SelectionSort() is a recursive function, which is used to sort array elements in ascending order.

In the main() function, we created an array of integers arr with 5 elements. Then we sorted the the array using SelectionSort() function.