Pagini recente » Cod sursa (job #2110322) | Cod sursa (job #2877464) | Cod sursa (job #1102947) | Cod sursa (job #144934) | Cod sursa (job #2944619)
//bucketsort
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin ("algsort.in");
ofstream cout ("algsort.out");
#define MAX_n 500000
#define nrGaleti (1 << 16)
#define MAX_a (1 << 31)
#define bitiGaleata 15
//int v[MAX_n];
vector <int> galeti[nrGaleti];
int gasesteGaleata (int a)
{
return a >> bitiGaleata;
}
void sort(int nrGaleata)
{
vector<int>& v = galeti[nrGaleata];
sort( v.begin(), v.end() );
}
int main()
{
int n, a;
cin >> n;
for(int i=0;i<n;++i)
{
cin >> a;
galeti[ gasesteGaleata(a) ].push_back(a);
}
int poz = 0;
for(int i=0;i<nrGaleti;++i)
{
sort(i);
for(int j = 0; j < galeti[i].size(); ++j)
{
cout << galeti[i][j] << " ";
//v[poz++] = galeti[i][j];
}
}
/*
for(int i = 0; i < poz; i++)
cout << v[i] << " ";
*/
}