Nasleduje funkcia v jazyku C, ktorá implementuje algoritmus Bubble sort. Uvedená funkcia vstupné pole celých čísel usporiada vzostupne.
//******BUBBLE SORT*******
//vstup: pole celych cisel urcene na usporiadanie, dlzka zadaneho pola
//ucel: vzostupne usporiadanie zadaneho pola
//algoritmus: Bubble sort
//vystup: (void)
|
void int_bubble_vzostup(int *pole_int, int dlzka)
{
int presuny = 0;
int porovnania = 0;
int pocet_vymen; //pocet vymen pri jednom prechode celym zadanym polom
int i; //i = aktualna pozicia
int pom; //pomocna premenna pri presuvani prvkov
//aspon raz vykonaj
do{
pocet_vymen = 0;
//pre cele pole, tj. od zaciatku az po dosiahnutie zadanej dlzky pola
for(i =0; i < dlzka-1; i++){
porovnania++;
//pre zostupne usporiadanie bude podmienka:
//if(pole_int[i] < pole_int[i+1])
if( pole_int[i] > pole_int[i+1] ){
//vymen ich
presuny = presuny+3;
pom = pole_int[i];
pole_int[i] = pole_int[i+1];
pole_int[i+1] = pom;
//nastala vymena
pocet_vymen++;
}
}
//opakuj tento cyklus pokial nebude pocet_vymen = 0,
//vtedy je zadane pole usporiadane
} while(pocet_vymen != 0);
//vypis konecnych hodnot porovnani a presunov
printf("Pocet porovnani: %d\n", porovnania);
printf("Pocet presunov: %d\n", presuny);
return;
}
|