#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
// INIT
int n;
cout << "Podaj ilosc elementow: "<< endl;
cin >> n;
int* tab = new int[n];
cout << "Wprowadz wartosci elementow: "<< endl;
for (int i = 0; i < n; i++) {
cin >> tab[i];
}
// SORT - jedna petla :]
bool anySwap = false;
for (int i = 1; i < n; i++)
{
if (tab[i] < tab[i-1])
{
swap (tab[i],tab[i-1]);
anySwap = true;
}
// reset petli jesli doszlo do jakiegokolwiek swapa
if (anySwap && i >= n - 1) {
// ustawiamy i na 0, bo zaraz zostanie zwiekszone o 1 i zacznie sie nastepny przebieg sortujacy
i = 0;
anySwap = false;
}
}
// OUT
cout << "Wynik sortowania:" << endl;
for (int i = 0; i < n; i++) {
cout << tab[i] << " ";
}
// CLEAN
delete[] tab;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7ICAgCgkvLyBJTklUCglpbnQgbjsKCQoJY291dCA8PCAiUG9kYWogaWxvc2MgZWxlbWVudG93OiAiPDwgZW5kbDsKCWNpbiA+PiBuOwoJCglpbnQqIHRhYiA9IG5ldyBpbnRbbl07CgkKCWNvdXQgPDwgIldwcm93YWR6IHdhcnRvc2NpIGVsZW1lbnRvdzogIjw8IGVuZGw7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWNpbiA+PiB0YWJbaV07Cgl9CgkKCS8vIFNPUlQgLSBqZWRuYSBwZXRsYSA6XQoJCglib29sIGFueVN3YXAgPSBmYWxzZTsKCQoJZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspCgl7CgkJaWYgKHRhYltpXSA8IHRhYltpLTFdKQoJCXsKCQkJc3dhcCAodGFiW2ldLHRhYltpLTFdKTsKCQkJYW55U3dhcCA9IHRydWU7CgkJfQoJCQoJCS8vIHJlc2V0IHBldGxpIGplc2xpIGRvc3psbyBkbyBqYWtpZWdva29sd2llayBzd2FwYQoJCWlmIChhbnlTd2FwICYmIGkgPj0gbiAtIDEpIHsKCQkJLy8gdXN0YXdpYW15IGkgbmEgMCwgYm8gemFyYXogem9zdGFuaWUgendpZWtzem9uZSBvIDEgaSB6YWN6bmllIHNpZSBuYXN0ZXBueSBwcnplYmllZyBzb3J0dWphY3kKCQkJaSA9IDA7CgkJCWFueVN3YXAgPSBmYWxzZTsKCQl9Cgl9CgkKCS8vIE9VVAoJCgljb3V0IDw8ICJXeW5payBzb3J0b3dhbmlhOiIgPDwgZW5kbDsKCQoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQljb3V0IDw8IHRhYltpXSA8PCAiICI7Cgl9CgkKCS8vIENMRUFOCgkKCWRlbGV0ZVtdIHRhYjsKCQoJcmV0dXJuIDA7Cn0=