Algoritmy usporadúvania

Bubble sort

Implementácia

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;
}