Pagini recente » Cod sursa (job #2887107) | Cod sursa (job #2712492) | Cod sursa (job #2251038) | Cod sursa (job #3291474) | Cod sursa (job #643991)
Cod sursa(job #643991)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const int N=10005;
vector <double> b[N];
vector <int> t[N];
int a[N],n,minim,maxim;
double v[N];
void citire ()
{
int i,y;
double p,x;
ifstream in ("algsort.in");
in>>n;
minim = 1 << 31 - 1;
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++)
{
x=(v[i]-minim)/(maxim-minim+1);
y=int (n*x);
b[y].push_back(x);
a[y]=1; }
}
int cmp(double a,double b){
return a<b;
}
void sortare ()
{
int i,j,k;
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]) { b[i][j]=b[i][j]+b[i][k]-(b[i][k]=b[i][j]);
}
}*/
sort(b[i].begin(),b[i].end(),cmp);
}
}
int main()
{
int i,j,p;
double k;
ofstream out ("algsort.out");
citire();
sortare();
k=0;
for (i=0;i<n;i++)
//if (a[n]==1)
for (j=0;j<b[i].size();j++)
out<<int(b[i][j]*(maxim-minim+1)+minim)<<" ";
return 0;
}