You are on page 1of 4

#include<stdio.

h>
#include<time.h>
#include<stdbool.h>
#include<stdlib.h>
#define size 100000
//SWAPPING
void swap(int * xp, int*yp){
int temp= *yp;
*xp=*yp;
*yp=temp;
}
//BUBBLE-SORT
void bubbleSort(int arr[],int n){
bool swapped;
for(int i=0;i<n-1;i++){
swapped=false;
for(int j=0;j<n-i-1;j++){
if(arr[j]>arr[j+1]){
swap(&arr[j], &arr[j+1]);
swapped=true;
}
}
if(swapped==false){
break;
}
}
}
//INSERTION-SORT
void insertionSort(int arr[], int n)
{
int i, key, j;
for (i = 1; i < n; i++)
{
key = arr[i];
j = i - 1;

while (j >= 0 && arr[j] > key)


{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
//SELECTION-SORT
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;

swap(&arr[min_idx], &arr[i]);
}
}
int main(){

FILE *fPtr;
int num, i, avgArray[size];

fPtr = fopen("averageCase.txt", "w");


// printf("Writing file");
for (i = 0; i < size; i++)
{
avgArray[i] = rand() % 1000;
putw(avgArray[i], fPtr);
}
fclose(fPtr);
int Arr2[size];
int Arr5[size];
int Arr8[size];
// printf("\nReading Data\n");
fPtr = fopen("averageCase.txt", "r");
while (getw(fPtr) != EOF)
{
for(int i=0;i<size;i++){
Arr2[i]=avgArray[i];
Arr5[i]=avgArray[i];
Arr8[i]=avgArray[i];
}
}

clock_t start_t, end_t;


double total_tBS, total_tIS,total_tSS;
printf("For BUBBLE SORTING!! \n");
int n=sizeof(Arr2)/sizeof(Arr2[0]);
printf("**For Avg Case\n");
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
bubbleSort(Arr2,n);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tBS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tBS);

printf("**For worst case\n");


int arr3[size];
int arr6[size];
int arr9[size];
for(int i=0;i<size;i++){
int j=size-i;
arr3[i]=j;
arr6[i]=j;
arr9[i]=j;
}
int n1=sizeof(arr3)/sizeof(arr3[0]);
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
bubbleSort(arr3,n1);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tBS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tBS);

printf("**For Best Case\n");


int arr4[size];
int arr7[size];
int arr10[size];
for(int i=0;i<=size;i++){
arr4[i]=i;
arr7[i]=i;
arr10[i]=i;
}
int n2=sizeof(arr3)/sizeof(arr3[0]);
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
bubbleSort(arr4,n2);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tBS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tBS);
printf("------------------------\n");

printf("For INSERTION SORTING!!\n");


int n3=sizeof(Arr5)/sizeof(Arr5[0]);
printf("**For Avg Case\n");
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
insertionSort(Arr5,n3);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tIS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tIS);

printf("**For Worst Case \n");


int n4=sizeof(arr6)/sizeof(arr6[0]);
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
insertionSort(arr6,n4);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tIS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tIS);

printf("**For Best Case\n");


int n5=sizeof(arr7)/sizeof(arr7[0]);
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
insertionSort(arr7,n5);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tIS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tIS);
printf("------------------------\n");

printf("For SELECTION SORTING!!\n");


int n6=sizeof(Arr8)/sizeof(Arr8[0]);
printf("**For Avg Case\n");
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
selectionSort(Arr8,n6);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tSS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tSS);

printf("**For Worst Case \n");


int n7=sizeof(arr9)/sizeof(arr9[0]);
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
selectionSort(arr9,n7);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tSS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tSS);

printf("**For Best Case\n");


int n8=sizeof(arr10)/sizeof(arr10[0]);
start_t=clock();
printf("Start of the big loop, start_t= %ld \n", start_t);
selectionSort(arr10,n8);
end_t=clock();
printf("End of the big loop, end_t= %ld \n", end_t);
total_tSS=(double)(end_t-start_t)/CLOCKS_PER_SEC;
printf("Total time taken: %f \n", total_tSS);

return (0);
}

You might also like