Cod sursa(job #346931)
| Utilizator | Data | 10 septembrie 2009 11:05:46 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
#include <vector>
#include <limits>
//radix
using namespace std;
int main(){
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;in>>n;
vector<int> v;v.reserve(n+1);
v.push_back(0);
for(int i=0;i<n;i++){
int t;in>>t;v.push_back(t);
}
for(int bit=1;bit!=numeric_limits<int>::min();bit=bit<<1){
for(int i=1;i<=n;++i){
if(!(v[i]&bit)){
int j=i;
while(v[j-1]&bit){
swap(v[j],v[j-1]);
--j;
}
}
}
}
for(int i=1;i<=n;i++){
out<<v[i]<<" ";
}
}
