Index « Previous Next »

Question

Write a program to sort a list of numbers using selection sort.

Source Code

#include <stdio.h>

void accept(int Arr[], int s);
void display(int Arr[], int s);
void ssort(int Arr[], int s);

int main()
{
    int list[100], n;
    printf("Enter size of Array : ");
    scanf("%d", &n);
    accept(list, n);
    printf("\nBefore sorting");
    display(list, n);
    ssort(list, n);
    printf("\nAfter sorting");
    display(list, n);

    return 0;
}

void accept(int Arr[], int s)
{
    int i;
    for (i = 0; i < s; i++)
    {
        printf("Enter element %d : ", i + 1);
        scanf("%d", &Arr[i]);
    }
}

void display(int Arr[], int s)
{
    int i;
    printf("\n");
    for (i = 0; i < s; i++)
    {
        printf("%d ", Arr[i]);
    }
}

void ssort(int Arr[], int s)
{
    int i, j, temp, small;
    for (i = 0; i < s - 1; i++)
    {
        small = i;
        for (j = i + 1; j < s; j++)
        {
            if (Arr[j] < Arr[small])
            {
                small = j;
            }
            if (small != i)
            {
                temp = Arr[i];
                Arr[i] = Arr[small];
                Arr[small] = temp;
            }
        }
    }
}

Output

Enter size of Array : 5
Enter element 1 : 19
Enter element 2 : 12
Enter element 3 : 3
Enter element 4 : 11
Enter element 5 : 7

Before sorting
19 12 3 11 7
After sorting
3 7 11 12 19