Pagini recente » Cod sursa (job #2350) | Cod sursa (job #1832798) | Cod sursa (job #1034924) | Cod sursa (job #880265) | Cod sursa (job #1014643)
#include<iostream>
#include<fstream>
using namespace std;
ofstream g("algsort.out");
void radix(int sortat[], int n)
{
int maxi=0, i, exp, count[10], aux[100001];
for(i=0;i<=9;i++)
count[i]=0;
for(i=0;i<n;i++)
aux[i]=sortat[i];
for(i=0;i<n;i++)
if(sortat[i]>maxi)
maxi=sortat[i];
exp=1;
while(maxi)
{
for(i=0;i<=9;i++)
count[i]=0;
for(i=0;i<n;i++)
count[(sortat[i]/exp)%10]++;
for(i=1;i<10;i++)
count[i]+=count[i-1];
for(i=n-1;i>=0;i--)
{
aux[--count[(sortat[i]/exp)%10]]=sortat[i];
}
for(i=0;i<n;i++)
sortat[i]=aux[i];
exp*=10;
maxi/=10;
}
for(i=0;i<n;i++)
g<<sortat[i]<<" ";
g<<"\n";
}
int main()
{
int i, v[100001], n;
ifstream f("algsort.in");
f>>n;
for(i=0;i<n;i++)
f>>v[i];
radix(v, n);
}