Vissza

Labor 6, haladóknak


Rendezések

Hasonlítsuk össze a beszúrásos, a minimum kiválasztásos és könyvtárfüggvény qsort segítségével rendező algoritmusok, rendezési idejét 5 000, 10 000, 50 000 elemszámú tömbök esetében.

Megoldott feladat:
Rendezzük egy 5000 elemszámú tömb elemeit, a könyvtárfüggvény qsort segítségével, és határozzuk meg a rendezéshez szükséges időt.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 5000

int comp (const void*, const void *);
void kiir(int *, int);

int main(){
    int *tomb, i;
    clock_t st, fs;
    tomb = (int*)calloc(M, sizeof(int));
    srand(time(0));
    for(i = 0; i < M; ++i){
        tomb[i] = rand();
        //printf("%6i", tomb[i]);
    }
   
    st = clock();
    qsort(tomb, M, sizeof(int), comp);
    fs = clock();
    printf("\n\nSorting time: %lf\n\n", (double)(fs-st)/CLOCKS_PER_SEC);
    printf("\n\nRendezve:");
    //kiir(tomb, M);
    free (tomb);
}

int comp (const void* a, const void *b){
    int*x = (int*)a;
    int*y = (int*)b;
    return (*x)-(*y);
}

void kiir(int *t, int n){
    int i;
    for(i = 0; i < n; ++i)
        printf("%6i", t[i]);
    printf("\n");
   
}