Bonusový úkol 3

Do následujícího kódu doprogramujte generickou funkci pro třídění a s její pomocí funkce pro třídění zlomků a short int. (Můžete si doprogramovat libovolné pomocné funkce.) Je zakázáno použít třídicí funkci ze standardní knihovny.

typedef struct
{
    int    numerator;
    size_t denominator;
} fraction;


typedef int compare_fn(void *, void*);


int compare_fraction(void *a, void *b)
{
    // @TODO: doprogramovat funkci 
}


int compare_unsigned(void *a, void *b)
{
    // @TODO: doprogramovat funkci 
}


void generic_sort(void *array, size_t n, size_t element_size, compare_fn* cmp)
{
    // @TODO: doprogramovat funkci, libovolny tridici algoritmus
}
          

void fractions_sort(fraction *array, size_t n)
{
    // @TODO: dodat spravne volani generic_sort
}


void unsigned_sort(unsigned int *array, size_t n)
{
    // @TODO: dodat spravne volani generic_sort
}