Lab DAA
Lab DAA
Selection Sort
#include<stdio.h>
#include<time.h>
void swap(int *xp,int*yp)
{
int temp=*xp;
*xp=*yp;
*yp=temp;
}
void selectionsort(int arr[],int n)
{
int i,j,min_idx;
for(i=0;i<n-1;i++)
{
min_idx=i;
for(j=i+1;j<n;j++)
if(arr[j]<arr[min_idx])
min_idx=j;
if(min_idx!=i)
swap(&arr[min_idx],&arr[i]);
}
}
void printArray(int arr[],int size)
{
int i;
for(i=0;i<size;i++)
printf("%d",arr[i]);
printf("\n");
}
int main()
{
int n, i;
clock_t start, end;
double time_taken;
printf("Enter the number of elements to be sorted: ");
scanf("%d", &n);
int arr[n];
printf("Generating %d random elements...\n", n);
srand(time(NULL));
for(i = 0; i < n; i++)
{
arr[i] = rand() % 5000;
}
printf("Sorting the array using Merge Sort...\n");
start = clock(); // Start timer
selectionsort(arr, n);
end = clock(); // Stop timer
printf("Sorted array: \n");
for(i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
time_taken = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("\nTime taken to sort %d elements: %lf seconds", n, time_taken);
return 0;
}
2. MERGE SORT
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void merge_sort(int[], int, int);
void merge(int[], int, int, int);
int main()
{
int n, i;
clock_t start, end;
double time_taken;