Pagini recente » Cod sursa (job #2224352) | Cod sursa (job #1822943) | Cod sursa (job #2804576) | Cod sursa (job #2048348) | Cod sursa (job #1502854)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMAX = 500001;
int N;
int v[NMAX];
void read() {
fin >> N;
for(int i = 1 ; i <= N; ++i)
fin >> v[i];
}
void shellsort() {
int gaps[] = {701, 301, 132, 57, 23, 10, 4, 1};
for(int ind = 0 ; ind < 8 ; ++ind) {
int gap = gaps[ind];
for(int i = gap ; i <= N; ++i) {
int temp = v[i];
int j;
for(j = i; j > gap && v[j - gap] >= temp; j -= gap)
v[j] = v[j - gap];
v[j] = temp;
}
}
}
int main() {
read();
shellsort();
for(int i = 1; i <= N; i++)
fout << v[i] << " ";
return 0;
}