Pagini recente » Profil tinamanea | Cod sursa (job #213085) | Cod sursa (job #1801466) | Cod sursa (job #541685) | Cod sursa (job #643996)
Cod sursa(job #643996)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const int N=10001;
vector <long double> b[N];
vector <int> t[N];
int v[N],n,minim,maxim,a[N];
void citire ()
{
int i,y;
long double p,x;
ifstream in ("algsort.in");
in>>n;
minim=2147483647;
maxim=0;
for (i=0;i<n;i++)
{
in>>v[i];
if (v[i]>maxim) maxim=v[i];
if (v[i]<minim) minim=v[i];
}
for (i=0;i<n;i++)
{
p=(v[i]-minim);
x=p/(maxim-minim+1);
y=int (n*x);
b[y].push_back(x);
t[y].push_back(i);
}
}
void sortare ()
{
int i,j,k;
long double aux;
for (i=0;i<n;i++)
if (b[i].size()>=2)
{
for (j=0;j<=b[i].size()-2;j++)
for (k=j+1;k<=b[i].size()-1;k++)
if (b[i][j]>b[i][k]) { aux=b[i][j];
b[i][j]=b[i][k];
b[i][k]=aux;
aux=t[i][j];
t[i][j]=t[i][k];
t[i][k]=aux;
}
}
}
int main()
{
int i,j,p;
long double k;
ofstream out ("algsort.out");
citire();
sortare();
k=0;
for (i=0;i<n;i++)
if (a[n]=1)
for (j=0;j<t[i].size();j++)
cout<<v[t[i][j]]<<" ";
return 0;
}