Pagini recente » Cod sursa (job #2571954) | Cod sursa (job #1384207) | Cod sursa (job #2208380) | Cod sursa (job #2292614) | Cod sursa (job #2076655)
#include <iostream>
#include <fstream>
#include <queue>
#include <limits.h>
#include <stack>
using namespace std;
stack<int> radix[10];
stack<int> vector_sort;
stack<int> vec2;
ofstream out("algsort.out");
int main()
{
ifstream in("algsort.in");
int n;
in>>n;
int x;
int maxim=INT_MIN;
for(int i=0; i<n; i++)
{
in>>x;
vector_sort.push(x);
if(x>maxim)maxim=x;
}
for(int i=1; maxim/i>0; i*=10)
{
int x;
while(vector_sort.size())
{
x=vector_sort.top();
vector_sort.pop();
radix[(x/i)%10].push(x);
}
for(i=0; i<10; i++)
{
while(radix[i].size()>0)
{
x=radix[i].top();
radix[i].pop();
vector_sort.push(x);
}
}
}
while(vector_sort.size())
{
int x=vector_sort.top();
vec2.push(x);
vector_sort.pop();
}
while(vec2.size()){
int x=vec2.top();
out<<x<<" ";
vec2.pop();
}
return 0;
}