Chapter - 9: Arrays

Implement the Selection Sort, Bubble Sort and Insertion sort algorithms on a set of 25 numbers.


D
Sections
2
Exercises

A

B

C

D

E

F

G

H

I

J

K

L

1

2

3

4

5

#include<stdio.h>
#include<conio.h>
#define MAX 5

void selection(int*);
void bubble(int*);
void insertion(int*);

void swap(int*, int*);
void show(int*); //display the array.

int main() 
{
	int a[MAX] = { 5,1,4,2,7 }, b[MAX] = { 5, 2, 3, 9, 0 }, c[MAX] = {6, 23,1, 6, 2};
	printf("\nSelection sort.");
	selection(a);
	show(a);
	printf("\nBubble sort.");
	bubble(b);
	show(b);
	printf("\nInsertion sort.");
	insertion(c);
	show(c);
	_getch();
	return 0;
}

/*It compares first element to all other elements, then second element to all
other elements and so on till last element.*/
void selection(int *a)
{
	int i, j;
	for (i = 0; i < MAX; i++)
		for (j = i + 1; j < MAX; j++)
			if (a[i] > a[j])
				swap(&a[i], &a[j]);
}

/*It compares two consecutive elements of the array*/
void bubble(int *a)
{
	int i, j;
	for (i = 0; i < MAX; i++)
		for (j = 0; j < MAX - 1; j++)
			if (a[j] > a[j + 1])
				swap(&a[j], &a[j + 1]);
}

/*It check elements from beginning and insert at particular position, if 
it is less than any previous element.*/
void insertion(int *a)
{
	int key, j, k;

	/* Grabs the next key on each iteration. */
	for (int i = 1; i < MAX; i++)
	{
		/* Selecting the number. */
		key = arr[i];

		/* Finding the position to insert viz. j */
		for (j = 0; arr[j] < key; j++);

		/* Shifting numbers to left. */
		for (k = i; k > j; k--)
			arr[k] = arr[k - 1];

		/* Inserting the number. */
		arr[j] = key;
	}
}

void swap(int *a, int *b)
{
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
}

//Display function
void show(int *a)
{
	int i;
	printf("\n");
	for (i = 0; i < MAX; i++)
		printf("%d\t", a[i]);
	printf("\n");
}

© 2020 Garbage Valuegarbage value logo