Advertisement
MeehoweCK

Untitled

Nov 25th, 2020
675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. const int N = 10;
  8.  
  9. void bubblesort(int* tablica, int n)
  10. {
  11.     for(int i = 0; i < n; ++i)
  12.         for(int j = 0; j < n - 1 - i; ++j)
  13.             if(tablica[j] > tablica[j + 1])
  14.                 swap(tablica[j], tablica[j + 1]);
  15. }
  16.  
  17. void shellSort(int arr[])
  18. {
  19.     for (int gap = N/2; gap > 0; gap /= 2)
  20.     {
  21.         for (int i = gap; i < N; i++)
  22.         {
  23.             //sort sub lists created by applying gap
  24.             int temp = arr[i];
  25.  
  26.             int j;
  27.             for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
  28.                 arr[j] = arr[j - gap];
  29.  
  30.             arr[j] = temp;
  31.         }
  32.     }
  33. }
  34.  
  35. void tablica_wypelnij(int* tablica, int n)
  36. {
  37.     srand(time(nullptr));
  38.     for(int i = 0; i < n; ++i)
  39.         tablica[i] = rand();
  40. }
  41.  
  42. void tablica_wypisz(int* tablica, int n)
  43. {
  44.     for(int i = 0; i < n; ++i)
  45.         cout << tablica[i] << '\t';
  46.     cout << endl;
  47. }
  48.  
  49. void tablica2d_wypelnij(int tablica[][N])
  50. {
  51.     srand(time(nullptr));
  52.     for(int i = 0; i < N; ++i)
  53.         for(int j = 0; j < N; ++j)
  54.             tablica[i][j] = rand();
  55. }
  56.  
  57. void tablica2d_wypisz(int tablica[][N])
  58. {
  59.     for(int i = 0; i < N; ++i)
  60.     {
  61.         for(int j = 0; j < N; ++j)
  62.             cout << tablica[i][j] << '\t';
  63.         cout << endl;
  64.     }
  65. }
  66.  
  67. void sortuj_kolumnami(int tablica[][N])
  68. {
  69.     int temp[N];
  70.     for(int k = 0; k < N; ++k)
  71.     {
  72.         for(int w = 0; w < N; ++w)
  73.             temp[w] = tablica[w][k];        // bierzemy kolumnę do tablicy pomocniczej
  74.         shellSort(temp);
  75.  
  76.         for(int w = 0; w < N; ++w)
  77.             tablica[w][k] = temp[w];
  78.     }
  79. }
  80.  
  81. int main()
  82. {
  83.     int tablica[N][N];
  84.     tablica2d_wypelnij(tablica);
  85.     tablica2d_wypisz(tablica);
  86.     sortuj_kolumnami(tablica);
  87.     cout << endl;
  88.     tablica2d_wypisz(tablica);
  89.  
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement