Advertisement
thebys

bubble sort radi matici stage

Nov 23rd, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //Koktejlove razeni matice matice
  4. //Neni to asi uplne podle zadani ale melo by to aspon fungovat.
  5. int main()
  6. {
  7.     //deklarace promennych
  8.     int pocetRadku = 11;
  9.     int pocetSloupcu = 23;
  10.     int zpracovatRadku = pocetRadku;
  11.     int zpracovatSloupcu = pocetSloupcu;
  12.  
  13.     int matice[pocetRadku][pocetSloupcu];
  14.     srand(time(NULL));
  15.  
  16.     int pocetIteraci = 0;
  17.     int zpatky = 0;
  18.     int serazeno = 0;
  19.  
  20.  
  21.     //naplnìní matice a jeji vypis
  22.     for(int i = 0; i < pocetRadku; ++i)
  23.     {
  24.         for(int j = 0; j < pocetSloupcu; ++j)
  25.         {
  26.             matice[i][j] = rand() % 100;
  27.             printf("%02i ", matice[i][j]);
  28.         }
  29.         printf("\n");
  30.     }
  31.     //serazeni matice
  32.  
  33.     while(serazeno == 0)
  34.     {
  35.         int nastaloPrehozeni = 0;
  36.         for(int k = 0; k < pocetRadku; ++k)
  37.         {
  38.             for(int l = 0; l < pocetSloupcu; ++l)
  39.             {
  40.                 //  printf("presort P:%02i:%02i - V: %02i\n", k, l, matice[k][l]);
  41.  
  42.                 if(l < pocetSloupcu-1) //stejny radek
  43.                 {
  44.                     if((matice[k][l]) > matice[k][l+1])
  45.                     {
  46.                         int temp = matice[k][l];
  47.                         matice[k][l] = matice[k][l+1];
  48.                         matice[k][l+1] = temp;
  49.                         nastaloPrehozeni = 1;
  50.                     }
  51.                 }
  52.                 if(k < pocetRadku-1 && l == pocetSloupcu -1) //posledni polozka neposledniho radku
  53.                 {
  54.                     if((matice[k][l]) > matice[k+1][0]) //posledni polozka aktualniho radku s prvni polozkou nasledujiciho
  55.                     {
  56.                         int temp = matice[k][l];
  57.                         matice[k][l] = matice[k+1][0];
  58.                         matice[k+1][0] = temp;
  59.                         nastaloPrehozeni = 1;
  60.                     }
  61.                 }
  62.                 if(k == pocetRadku-1 && l == pocetSloupcu-1)
  63.                 {
  64.                     //posledni polozka iterace
  65.                     break;
  66.                 }
  67.  
  68.                 if( matice[k][l] > 100)
  69.                 {
  70.                     printf("val err P:%02i:%02i - V: %02i\n", k, l, matice[k][l]);
  71.                 }
  72.             }
  73.         }
  74.         if(nastaloPrehozeni == 1)
  75.         {
  76.             ++pocetIteraci;
  77.             continue;
  78.  
  79.         }
  80.         else
  81.         {
  82.             serazeno = 1;
  83.         }
  84.     }
  85.  
  86.     //vypis matice
  87.     printf("\n\nserazeno v %i iteracich:\n", pocetIteraci);
  88.     for(int i = 0; i < pocetRadku; ++i)
  89.     {
  90.         for(int j = 0; j < pocetSloupcu; ++j)
  91.         {
  92.             printf("%02i ", matice[i][j]);
  93.         }
  94.         printf("\n");
  95.     }
  96.  
  97.  
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement