#include <iostream>
#include <vector>
using namespace std;
class Algorytmy {
public:
static void bubble_sort(vector<int>& tab) {
cout << "Sortowanie babelkowe" << endl;
for(int i = 0; i < tab.size(); i++) {
for(int j = 1; j < tab.size() - i; j++) {
if(tab[j-1] > tab[j]) {
swap(tab[j-1], tab[j]);
}
}
}
for(int liczba: tab) cout << liczba << ' ';
}
static void insertion_sort(vector<int>& tab) {
cout << "Sortowanie przez wstawianie" << endl;
}
static void selection_sort(vector<int>& tab) {
cout << "Sortowanie przez selekcje" << endl;
for(int i = 0; i < tab.size(); i++) {
int poz = i;
for(int j = i + 1; j < tab.size(); j++) {
if(tab[j] < tab[poz]) {
poz = j;
}
}
swap(tab[i], tab[poz]);
}
for(int liczba: tab) cout << liczba << ' ';
}
};
int main() {
vector<int> tab = {3, 1 ,5 ,7 ,3, 2, 6, 3};
//Algorytmy::bubble_sort(tab);
Algorytmy::selection_sort(tab);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEFsZ29yeXRteSB7CgogICAgcHVibGljOgoKICAgICAgICBzdGF0aWMgdm9pZCBidWJibGVfc29ydCh2ZWN0b3I8aW50PiYgdGFiKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlNvcnRvd2FuaWUgYmFiZWxrb3dlIiA8PCBlbmRsOwogICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdGFiLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGogPSAxOyBqIDwgdGFiLnNpemUoKSAtIGk7IGorKykgewogICAgICAgICAgICAgICAgICAgIGlmKHRhYltqLTFdID4gdGFiW2pdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN3YXAodGFiW2otMV0sIHRhYltqXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcihpbnQgbGljemJhOiB0YWIpIGNvdXQgPDwgbGljemJhIDw8ICcgJzsKICAgICAgICB9CgogICAgICAgIHN0YXRpYyB2b2lkIGluc2VydGlvbl9zb3J0KHZlY3RvcjxpbnQ+JiB0YWIpIHsKICAgICAgICAgICAgY291dCA8PCAiU29ydG93YW5pZSBwcnpleiB3c3Rhd2lhbmllIiA8PCBlbmRsOwogICAgICAgIH0KCiAgICAgICAgc3RhdGljIHZvaWQgc2VsZWN0aW9uX3NvcnQodmVjdG9yPGludD4mIHRhYikgewogICAgICAgICAgICBjb3V0IDw8ICJTb3J0b3dhbmllIHByemV6IHNlbGVrY2plIiA8PCBlbmRsOwogICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdGFiLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICBpbnQgcG96ID0gaTsKICAgICAgICAgICAgICAgIGZvcihpbnQgaiA9IGkgKyAxOyBqIDwgdGFiLnNpemUoKTsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYodGFiW2pdIDwgdGFiW3Bvel0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgcG96ID0gajsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzd2FwKHRhYltpXSwgdGFiW3Bvel0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcihpbnQgbGljemJhOiB0YWIpIGNvdXQgPDwgbGljemJhIDw8ICcgJzsKICAgICAgICB9Cgp9OwoKaW50IG1haW4oKSB7CgogICAgdmVjdG9yPGludD4gdGFiID0gezMsIDEgLDUgLDcgLDMsIDIsIDYsIDN9OwogICAgLy9BbGdvcnl0bXk6OmJ1YmJsZV9zb3J0KHRhYik7CiAgICBBbGdvcnl0bXk6OnNlbGVjdGlvbl9zb3J0KHRhYik7CgogICAgcmV0dXJuIDA7Cgp9