Pagini recente » Cod sursa (job #54485) | Cod sursa (job #2201842) | Cod sursa (job #1381863) | Cod sursa (job #2093363) | Cod sursa (job #1377429)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void bitsort(int *v,int level,int st,int dr)
{
if(st >= dr || level == -1) return;
int bit0 = 0;
for(int i=st;i<=dr;++i)
if((v[i] & (1<<level)) == 0) swap(v[i],v[st+(++bit0)-1]);
bitsort(v,level-1,st,st+bit0-1);
bitsort(v,level-1,st+bit0,dr);
}
int main()
{
int n;
f>>n;
int *v = new int[n+1];
for(int i=1;i<=n;++i) f>>v[i];
bitsort(v,8*sizeof(int)-1,1,n);
for(int i=1;i<=n;++i) g<<v[i]<<" "; g<<"\n";
f.close();
g.close();
return 0;
}