Cod sursa(job #1126468)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 26 februarie 2014 23:40:08
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
using namespace std;

int gaps[8] = {701, 301, 132, 57, 23, 10, 4, 1}, gap;
int a[500002],n,i,j,temp;
fstream fin, fout;
int main()
{
    fin.open("algsort.in",ios::in);
    fout.open("algsort.out",ios::out);
    fin>>n;
    for (i=0;i<n;i++)fin>>a[i];
    for (gap=0; gap<8;gap++)
    {
    //Do an insertion sort for each gap size.
        for (i = gap; i < n; i++)
        {
            temp = a[i];
            for (j = i; j >= gap && a[j - gap] > temp; j -= gap)
            {
                a[j] = a[j - gap];
            }
            a[j] = temp;
        }
    }
    for (i=0;i<n;i++) fout<<a[i]<<" ";
    fin.close();
    fout.close();
    return 0;
}