#include <iostream>
#include <time.h>
#include <windows.h>
using namespace std;
int n;
int *tablica;
int najwieksza=0;
int najmniejsza;
clock_t start,stop;
double czas;
void sortowanie(int *tab, int n, int maximum, int minimum);
int main()
{
srand(time(NULL));
cout<<"Ile losowych liczb chcesz posortowac: ";
cin>>n;
tablica = new int [n];
for(int i=0; i<n; i++)
{
tablica[i] = rand()%100000+1;
if(i==0)
{
najmniejsza = tablica[i];
}
if(tablica[i]>najwieksza)
{
najwieksza = tablica[i];
}
if(najmniejsza>tablica[i])
{
najmniejsza=tablica[i];
}
}
start = clock();
sortowanie(tablica, n, najwieksza, najmniejsza);
stop = clock();
czas = (double)(stop-start) / CLOCKS_PER_SEC;
cout<<"Czas sortowania: "<<czas<<"s"<<endl;
delete [] tablica;
return 0;
}
void sortowanie(int *tab, int n, int maximum, int minimum)
{
int miejsce=0;
int bufor;
for(int i=najmniejsza; i<=maximum; i++)
{
for(int j=0; j<n; j++)
{
if(tab[j]==i)
{
bufor = tab[miejsce];
tab[miejsce] = tab[j];
tab[j] = bufor;
miejsce++;
}
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8d2luZG93cy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuOwppbnQgKnRhYmxpY2E7CmludCBuYWp3aWVrc3phPTA7CmludCBuYWptbmllanN6YTsKCmNsb2NrX3Qgc3RhcnQsc3RvcDsKZG91YmxlIGN6YXM7Cgp2b2lkIHNvcnRvd2FuaWUoaW50ICp0YWIsIGludCBuLCBpbnQgbWF4aW11bSwgaW50IG1pbmltdW0pOwoKaW50IG1haW4oKQp7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKICAgIGNvdXQ8PCJJbGUgbG9zb3d5Y2ggbGljemIgY2hjZXN6IHBvc29ydG93YWM6ICI7CiAgICBjaW4+Pm47CiAgICB0YWJsaWNhID0gbmV3IGludCBbbl07CiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgdGFibGljYVtpXSA9IHJhbmQoKSUxMDAwMDArMTsKICAgICAgICBpZihpPT0wKQogICAgICAgIHsKICAgICAgICAgICAgbmFqbW5pZWpzemEgPSB0YWJsaWNhW2ldOwogICAgICAgIH0KICAgICAgICBpZih0YWJsaWNhW2ldPm5handpZWtzemEpCiAgICAgICAgewogICAgICAgICAgICBuYWp3aWVrc3phID0gdGFibGljYVtpXTsKICAgICAgICB9CiAgICAgICAgaWYobmFqbW5pZWpzemE+dGFibGljYVtpXSkKICAgICAgICB7CiAgICAgICAgICAgIG5ham1uaWVqc3phPXRhYmxpY2FbaV07CiAgICAgICAgfQogICAgfQogICAgc3RhcnQgPSBjbG9jaygpOwogICAgc29ydG93YW5pZSh0YWJsaWNhLCBuLCBuYWp3aWVrc3phLCBuYWptbmllanN6YSk7CiAgICBzdG9wID0gY2xvY2soKTsKICAgIGN6YXMgPSAoZG91YmxlKShzdG9wLXN0YXJ0KSAvIENMT0NLU19QRVJfU0VDOwogICAgY291dDw8IkN6YXMgc29ydG93YW5pYTogIjw8Y3phczw8InMiPDxlbmRsOwogICAgZGVsZXRlIFtdIHRhYmxpY2E7CiAgICByZXR1cm4gMDsKfQoKdm9pZCBzb3J0b3dhbmllKGludCAqdGFiLCBpbnQgbiwgaW50IG1heGltdW0sIGludCBtaW5pbXVtKQp7CiAgICBpbnQgbWllanNjZT0wOwogICAgaW50IGJ1Zm9yOwogICAgZm9yKGludCBpPW5ham1uaWVqc3phOyBpPD1tYXhpbXVtOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqPTA7IGo8bjsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYodGFiW2pdPT1pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBidWZvciA9IHRhYlttaWVqc2NlXTsKICAgICAgICAgICAgICAgIHRhYlttaWVqc2NlXSA9IHRhYltqXTsKICAgICAgICAgICAgICAgIHRhYltqXSA9IGJ1Zm9yOwogICAgICAgICAgICAgICAgbWllanNjZSsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==