MSzopa

C++ 25.03.2022 Sort by Choice

Mar 25th, 2022 (edited)
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. #include <iostream>
  2. #include<vector>
  3. #include <cstdlib>
  4. void RetardedSwap(std::vector<int>& tab, int i, int k) {
  5.     std::vector<int> ret;
  6.     if (i > k)
  7.     {
  8.         int b = i;
  9.         i = k;
  10.         k = b;
  11.     }
  12.     for (int a = 0; a < tab.size(); a++) {
  13.         if (a == i)
  14.             ret.push_back(tab[k]);
  15.         else
  16.             if (a == k)
  17.                 ret.push_back(tab[i]);
  18.             else
  19.             ret.push_back(tab[a]);
  20.     }
  21.     tab = ret;
  22. }
  23. std::vector<int> SortByChoice(std::vector<int> data) {
  24.     for (int k = 0; k < data.size(); k++) {
  25.         int min = k;
  26.         for (int i = k + 1; i < data.size(); i++) {
  27.             if (data[i] < data[min])
  28.                 min = i;
  29.  
  30.         }
  31.         if (k != min)
  32.             RetardedSwap(data, k, min);
  33.             //std::swap(data[k], data[min]);
  34.     }
  35.     return data;
  36. }
  37. int main()
  38. {
  39.     setlocale(LC_ALL, "Polish");
  40.     srand(time(NULL));
  41.     int elemCount;
  42.     std::cout << "Podaj wielkość tablicy: ";
  43.     std::cin >> elemCount;
  44.     std::vector<int> data;
  45.     std::cout << std::endl << "Zbiór liczb:" << std::endl;
  46.     for (int i = 0; i < elemCount; i++) {
  47.         data.push_back(std::rand());
  48.         std::cout << data[data.size()-1]<<" ";
  49.     }
  50.     data = SortByChoice(data);
  51.     std::cout << std::endl << "Posortowane:" << std::endl;
  52.     for (int a : data) {
  53.         std::cout << a << " ";
  54.     }
  55. }
Add Comment
Please, Sign In to add comment