Cod sursa(job #2490275)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 9 noiembrie 2019 23:34:05
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n;
int a[500005];
void shellSort(int a[], int n){
    int split[] = {7, 3, 2, 1};
    for(int i = 0; i < 4; i++){
        int x = split[i];
        for(int j = 0; j < x; j++){
            for(int k = j; k < n; k += x){
                int p = k - x, temp = a[k];
                while(p >= 0 && a[p] > temp)
                    a[p + x] = a[p], p -= x;
                a[p + x] = temp;
            }
        }
    }
    for(int i = 0; i < n; i++)
        cout << a[i] << ' ';
    cout << '\n';
}
int main()
{

    cin >> n;
    for(int i = 0; i < n; i++)
        cin >> a[i];
    shellSort(a, n);
    return 0;
}