#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Swap utility
void swap(long int* a, long int* b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
// Selection sort
void selectionSort(long int arr[], long int n)
{
long int i, j, midx;
for (i = 0; i < n - 1; i++) {
// Find the minimum element in unsorted array
midx = i;
for (j = i + 1; j < n; j++)
if (arr[j] < arr[midx])
midx = j;
// Swap the found minimum element
// with the first element
swap(&arr[midx], &arr[i]);
}
}
// Driver code
int main()
{
long int n = 10000;
int it = 0;
// Arrays to store time duration
// of sorting algorithms
double tim3[10];
printf("A_size, Selection\n");
// Performs 10 iterations
while (it++ < 5) {
long int a[n];
// generating n random numbers
// storing them in arrays a, b, c
for (int i = 0; i < n; i++) {
long int no
= rand() % n
+ 1; a[i] = no;
}
// using clock_t to store time
clock_t start, end;
// Selection sort
selectionSort(a, n);
tim3[it] = ((double)(end - start));
// type conversion to long int
// for plotting graph with integer values
printf("%li, %li \n", n
, (long int)tim3
[it
]); ;
// increases the size of array by 10000
n += 10000;
}
return 0;
}
ICNpbmNsdWRlIDxzdGRpby5oPiAKI2luY2x1ZGUgPHN0ZGxpYi5oPiAKI2luY2x1ZGUgPHRpbWUuaD4gCiAgCi8vIFN3YXAgdXRpbGl0eSAKdm9pZCBzd2FwKGxvbmcgaW50KiBhLCBsb25nIGludCogYikgCnsgCiAgICBpbnQgdG1wID0gKmE7IAogICAgKmEgPSAqYjsgCiAgICAqYiA9IHRtcDsgCn0gCiAgIAogIAovLyBTZWxlY3Rpb24gc29ydCAKdm9pZCBzZWxlY3Rpb25Tb3J0KGxvbmcgaW50IGFycltdLCBsb25nIGludCBuKSAKeyAKICAgIGxvbmcgaW50IGksIGosIG1pZHg7IAogIAogICAgZm9yIChpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsgCiAgCiAgICAgICAgLy8gRmluZCB0aGUgbWluaW11bSBlbGVtZW50IGluIHVuc29ydGVkIGFycmF5IAogICAgICAgIG1pZHggPSBpOyAKICAKICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IG47IGorKykgCiAgICAgICAgICAgIGlmIChhcnJbal0gPCBhcnJbbWlkeF0pIAogICAgICAgICAgICAgICAgbWlkeCA9IGo7IAogIAogICAgICAgIC8vIFN3YXAgdGhlIGZvdW5kIG1pbmltdW0gZWxlbWVudCAKICAgICAgICAvLyB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IAogICAgICAgIHN3YXAoJmFyclttaWR4XSwgJmFycltpXSk7IAogICAgfSAKfSAKICAKLy8gRHJpdmVyIGNvZGUgCmludCBtYWluKCkgCnsgCiAgICBsb25nIGludCBuID0gMTAwMDA7IAogICAgaW50IGl0ID0gMDsgCiAgCiAgICAvLyBBcnJheXMgdG8gc3RvcmUgdGltZSBkdXJhdGlvbiAKICAgIC8vIG9mIHNvcnRpbmcgYWxnb3JpdGhtcyAKICAgIGRvdWJsZSB0aW0zWzEwXTsgCiAgCiAgICBwcmludGYoIkFfc2l6ZSwgU2VsZWN0aW9uXG4iKTsgCiAgCiAgICAvLyBQZXJmb3JtcyAxMCBpdGVyYXRpb25zIAogICAgd2hpbGUgKGl0KysgPCA1KSB7IAogICAgICAgIGxvbmcgaW50IGFbbl07CiAgCiAgICAgICAgLy8gZ2VuZXJhdGluZyBuIHJhbmRvbSBudW1iZXJzIAogICAgICAgIC8vIHN0b3JpbmcgdGhlbSBpbiBhcnJheXMgYSwgYiwgYyAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeyAKICAgICAgICAgICAgbG9uZyBpbnQgbm8gPSByYW5kKCkgJSBuICsgMTsgCiAgICAgICAgICAgIGFbaV0gPSBubzsgCiAgICAgICAgICAgIH0gCiAgCiAgICAgICAgLy8gdXNpbmcgY2xvY2tfdCB0byBzdG9yZSB0aW1lIAogICAgICAgIGNsb2NrX3Qgc3RhcnQsIGVuZDsgCiAgICAgICAgICAgIAogICAgICAgIC8vIFNlbGVjdGlvbiBzb3J0IAogICAgICAgIHN0YXJ0ID0gY2xvY2soKTsgCiAgICAgICAgc2VsZWN0aW9uU29ydChhLCBuKTsgCiAgICAgICAgZW5kID0gY2xvY2soKTsgCiAgCiAgICAgICAgdGltM1tpdF0gPSAoKGRvdWJsZSkoZW5kIC0gc3RhcnQpKTsgCiAgCiAgICAgICAgLy8gdHlwZSBjb252ZXJzaW9uIHRvIGxvbmcgaW50IAogICAgICAgIC8vIGZvciBwbG90dGluZyBncmFwaCB3aXRoIGludGVnZXIgdmFsdWVzIAogICAgICAgIHByaW50ZigiJWxpLCAlbGkgXG4iLCAgbiwgKGxvbmcgaW50KXRpbTNbaXRdKTsgCjsKICAKICAgICAgICAvLyBpbmNyZWFzZXMgdGhlIHNpemUgb2YgYXJyYXkgYnkgMTAwMDAgCiAgICAgICAgbiArPSAxMDAwMDsgCiAgICB9IAogIAogICAgcmV0dXJuIDA7IAp9