Ako by ste usporiadali skupinu objektov?
Netreba triediť
n-1
prvkovú množinu.int pole[10] = {4,10,2,5,6,7,8,2,4,8};
// Pole velkosti 1 nemá zmysel triedit
for (int i = 0; i < 10;i++){
for (int j = 1; j < 10 - i;j++){
if (pole[j-1] >= pole[j]){
int k = pole[j];
pole[j] = pole[j-1];
pole[j-1] = k
}
}
}
void bubble_sort(int* pole, int size){
if (size < 2){
return;
}
for (int i = 1; i < size;i++){
if (pole[i-1] >= pole[i]){
int k = pole[i];
pole[i] = pole[i-1];
pole[i-1] = k;
}
}
bubble_sort(pole,size-1);
}
void qsort (
void* base, // Začiatok poľa
size_t num, // Počet prvkov
size_t size, // Veľkosť prvku
int (*compar)(const void*,const void*) // Operácia porovnania
);
void*
a void*
, ktorá porovná dva prvkysize_t
void*
int (compar)(const void,const void*)
size_t
: celé číslovoid*
: adresa ľubovoľného miesta+ - * / ++ == % --
)int cele_cislo = 3.4;
float realne_cislo = 4;
int a = 5;
int b = 2;
float c = a / b;
float / float = float
int / int = int
int a = 5;
int b = 2;
float c = (float)a / (float)b;
Vytvori "dočasnú premennú" s daným typom a pôvodnou hodnotou.
Rob čo Ti poviem
Callback
int (*compar)(const void*,const void*)
// http://www.cplusplus.com/reference/cstdlib/qsort/
#include <stdio.h> /* printf */
#include <stdlib.h> /* qsort */
int compare (const void * a, const void * b){
return ( *(int*)a - *(int*)b );
}
int main (){
int values[] = { 40, 10, 100, 90, 20, 25 };
qsort (values, 6, sizeof(int), compare);
for (int n=0; n<6; n++)
printf ("%d ",values[n]);
return 0;
}