78 lines
1.4 KiB
C
78 lines
1.4 KiB
C
|
/*
|
||
|
* C program for SELECTION sort which uses following functions
|
||
|
* a) To find maximum of elements
|
||
|
* b) To swap two elements
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
|
||
|
int findmax(int b[10], int k);
|
||
|
void exchang(int b[10], int k);
|
||
|
void main()
|
||
|
{
|
||
|
int array[10];
|
||
|
int i, j, n, temp;
|
||
|
printf("Enter the value of n \n");
|
||
|
scanf("%d", &n);
|
||
|
printf("Enter the elements one by one \n");
|
||
|
for (i = 0; i < n; i++)
|
||
|
{
|
||
|
scanf("%d", &array[i]);
|
||
|
}
|
||
|
printf("Input array elements \n");
|
||
|
for (i = 0; i < n ; i++)
|
||
|
{
|
||
|
printf("%d\n", array[i]);
|
||
|
}
|
||
|
/* Selection sorting begins */
|
||
|
exchang(array, n);
|
||
|
printf("Sorted array is...\n");
|
||
|
for (i = 0; i < n; i++)
|
||
|
{
|
||
|
printf("%d\n", array[i]);
|
||
|
}
|
||
|
}
|
||
|
/* function to find the maximum value */
|
||
|
int findmax(int b[10], int k)
|
||
|
{
|
||
|
int max = 0, j;
|
||
|
for (j = 1; j <= k; j++)
|
||
|
{
|
||
|
if (b[j] > b[max])
|
||
|
{
|
||
|
max = j;
|
||
|
}
|
||
|
}
|
||
|
return(max);
|
||
|
}
|
||
|
void exchang(int b[10], int k)
|
||
|
{
|
||
|
int temp, big, j;
|
||
|
for (j = k - 1; j >= 1; j--)
|
||
|
{
|
||
|
big = findmax(b, j);
|
||
|
temp = b[big];
|
||
|
b[big] = b[j];
|
||
|
b[j] = temp;
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
/*
|
||
|
*OUTPUT:
|
||
|
Enter the value of n
|
||
|
4
|
||
|
Enter the elements one by one
|
||
|
57
|
||
|
90
|
||
|
34
|
||
|
78
|
||
|
Input array elements
|
||
|
57
|
||
|
90
|
||
|
34
|
||
|
78
|
||
|
Sorted array is...
|
||
|
34
|
||
|
57
|
||
|
78
|
||
|
90
|
||
|
*/
|