Pagini recente » Cod sursa (job #2059376) | Cod sursa (job #1244246) | Cod sursa (job #956763) | Cod sursa (job #2180772) | Cod sursa (job #642871)
Cod sursa(job #642871)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int N=500001;
int i,n,maxim,minim;
double v[N];
vector <double> b[N];
void citire ()
{
int x;
ifstream in ("algsort.in");
in>>n;
in>>i;
v[1]=i;
maxim=v[1];
minim=v[1];
for (i=2;i<=n;i++)
{
in>>x;
v[i]=x;
if (maxim<v[i]) maxim=v[i];
if (minim>v[i]) minim=v[i];
}
for (i=1;i<=n;i++){
v[i]=(v[i]-minim)/(maxim-minim+1);
x=int (n*v[i]);
b[x].push_back (v[i]);
}
}
void bucket ()
{int j,k,aux;
for (i=0;i<n;i++)
{if (b[i].size()!=0)
{
for (j=0;j<b[i].size()-1;j++)
for (k=j+1;k<b[i].size();k++)
if (b[i][j]>b[i][k]) {aux=b[i][j];
b[i][j]=b[i][k];
b[i][k]=aux;}
}
}
}
void afisare ()
{int j;
double x;
ofstream out ("algsort.out");
for (i=0;i<n;i++)
{if (b[i].size()!=0)
for (j=0;j<=b[i].size()-1;j++)
{
x=b[i][j];
x=(x*(maxim-minim+1)+minim);
out<<x<<" ";
}
}
}
int main()
{
citire ();
bucket ();
afisare ();
return 0;
}