You are on page 1of 4

38

Name: Kukum Chouhan


Enrollment No. : 200426
ASSINGMENT:6

Objective: Compare insertion sort and selection sort


a) Insertion sort

#include <stdio.h>

int main() {

int n;

int arr[15];

printf("Enter the size of an array: ");

scanf("%d",&n);

printf("Enter an array: ");

for(int i=0;i<n;i++)

scanf("%d",&arr[i]);

int i, j, position, swap;

for (i = 0; i < (n - 1); i++) {

position = i;

for (j = i + 1; j < n; j++) {

if (arr[position] > arr[j])

position = j;

if (position != i) {

swap = arr[i];

arr[i] = arr[position];

arr[position] = swap;

}
39

for (i = 0; i < n; i++)

printf("%d\t", arr[i]);

return 0;

}
40

b) Selection sort

#include <math.h>
#include <stdio.h>
#include<time.h>
int insertionSort (int arr[], int n)
{
int i, key, j,cnt=0;
for (i = 1; i < n; i++)
{
cnt+=1;
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
return cnt;
}
void printArray (int arr[], int n)
{
int i;
printf("Sorted array is:\n");
for (i = 0; i < n; i++)
printf ("%d ", arr[i]);
printf ("\n");
41

}
int main ()
{
int arr[15],n;
clock_t start,end;
printf ("Enter the size of an array: ");
scanf ("%d", &n);
printf ("Enter an array: ");
for (int i = 0; i < n; i++)
{
scanf ("%d", &arr[i]);
}
start=clock();
int cnt=insertionSort (arr, n);
printArray (arr, n);
end=clock();
double tot = (double) (end - start) / CLOCKS_PER_SEC;
printf ("Total Time Taken is:%f", tot);
printf ("\ncount is %d", cnt);
return 0;
}

You might also like