Cod sursa(job #1021130)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 3 noiembrie 2013 12:02:09
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;

ifstream cin("algsort.in");
ofstream cout("algsort.out");

int v[500000];
int n;

int hashf(int x)
{
  return x >> 16;
}

void bucketSort (int *v)
{
  vector<int> buckets[n / 2];

  for (int i = 0; i != n; ++i)
    buckets[hashf(v[i])].push_back(v[i]);

  for (int i = 0; i != n / 2; ++i)
      sort (buckets[i].begin(), buckets[i].end());

  for (int i = 0; i != n / 2; ++i)
    {
      for (vector<int>::iterator j = buckets[i].begin(); j != buckets[i].end(); ++j)
	cout << *j << " ";
    }
}

int main()
{
  cin >> n;

  for (int i = 0; i < n; ++i)
    {
      cin >> v[i];
    }

  bucketSort(v);
}