IB001 Úvod do programování - Seminární skupina 25 a 26
Bublinkové řazení pole - zdrojový kód
#include <stdio.h> #include <stdlib.h> #include <time.h> void prehod(int *x, int *y) { int tmp = *x; *x = *y; *y = tmp; } void vypis(int n, int *pole) { for(int i=0; i<n; i++) printf("%d ",*(pole+i)); } void bubbleSort(int n, int pole[], int razeni) { for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ if(razeni == 0){ if(pole[i] < pole[j]) prehod(&pole[i],&pole[j]); }else{ if(pole[i] > pole[j]) prehod(&pole[i],&pole[j]); } } } } int main(void) { int pocet; printf("Zadej pocet cisel: "); scanf("%d", &pocet); int cisla[pocet]; printf("\nZadej jednotlive prvky (pocet: %d):\n", pocet); for (int i = 0; i < pocet; i++){ printf("%d: ",i+1); scanf("%d", &cisla[i]); } scanf("%*[^\n]"); scanf("%*c"); // vycistime standartni vstup char volba; printf("Zadejte razeni cisel S = stoupajíci, K = klesajici: "); scanf("%c", &volba); printf("\nNeserazene pole: "); vypis(pocet,&cisla); switch(volba) { case 's': case 'S': printf("\nRazeni od nejmensiho po nejvetsi: "); bubbleSort(pocet,cisla,0); break; case 'k': case 'K': printf("\nRazeni od nejvetsiho po nejmensi: "); bubbleSort(pocet,cisla,1); break; default: printf("Neplatna volba razeni"); return -1; } vypis(pocet,&cisla); printf("\n\n"); return 0; }