Pagini recente » Cod sursa (job #1807128) | Cod sursa (job #2517867) | Cod sursa (job #2469111) | Cod sursa (job #329692) | Cod sursa (job #648482)
Cod sursa(job #648482)
#include<stdio.h>
#include<iostream>
#include<fstream>
#include<algorithm>
#include<ctime>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int N;
int v[ 1 << 21 ];
void shell_sort( int *v) {
int gaps[16] = { 245917 * 5 + 3, 245917 *2.5 + 1, 245917, 106458, 46086, 19951, 8637, 1619,
701, 301, 132, 57, 23, 10, 4, 1 };
for( int j = 0; j < 16; ++j) {
if( gaps[ j ] * 2 > N ) continue;
for( int k = gaps[j]; k < N; ++k) {
int poz = k;
while ( poz >= gaps[ j ] && v[ poz ] < v[ poz - gaps[j]] ){
swap(v[poz], v[poz-gaps[j]]);
poz = poz - gaps[j];
}
}
}
}
int main() {
fin>>N;
for (int i=0;i<N;i++) fin>>v[i];
//shell_sort(v);
sort(v,v+N);
for (int i=0;i<N;i++) fout<<v[i]<<' ';
return 0;
}