Witam mam za zadanie napisać algorytm sortowania Shella oraz sortowanie przez scalanie (ale najpierw zajmijmy się tym 1), który będzie również podawał czas sortowania. Następnie muszę zrobić w excelu na podstawie danych z sortowania wykres t-czasu od n-rozmiaru danych(ilość liczb do sortowania). Dane do excela mogę przenieść ręcznie, ale chodzi mi o to aby program automatycznie zapisywał te dane do excela ( klasa ofstream?? ). Proszę o pomoc z tym zapisywaniem danych oraz opinie na temat mojego kodu sortowania coś zmienić/poprawić, czy funkcja mierząca czas sortowania jest w odpowiednim miejscu?

#include <iostream>
#include <math.h>
#include <iomanip>
#include <ctime>
#include <cstdlib>
#include <cstdio>

using namespace std;

int main()
{
    

  int dl,i,j,liczba,ile,n;
  cout << "Sortowanie algorytm Shella";
  cout<<"\nPodaj ile liczb chcesz posortowac: ";
  cin>>ile;
  int *tablica=new int[ile];
  
  cout<<"\nPodaj maksymalna liczbe w zbiorze: ";
  cin>>n;
  cout<<"\n\n";
  system("pause");
  system("cls");    


  
  srand((unsigned)time(NULL));

  for(i = 0; i < ile; i++) 
  tablica[i] = rand() % n + 1;
  

  cout<<"\n\n\t\t Zbior "<<ile<<" liczb\n\n";

  
  
  cout<<"\n\n";
  system("pause");
  system("cls"); 



for(dl = 1; dl < ile; dl = 3 * dl + 1);
    dl /= 9;
  
clock_t s, f;
double czas=0;
s = clock();
    

  while(dl)
  {
    for(j = ile - dl - 1; j >= 0; j--)
    {
      liczba = tablica[j];
      i = j + dl;
      while((i < ile) && (liczba > tablica[i]))
      {
        tablica[i - dl] = tablica[i];
        i += dl;
      }
      tablica[i - dl] = liczba;
    }
    dl /= 3;
  }



  cout << "\n\n\t\tZbior "<<ile<< " liczb posortowany za pomoca algorytmu Shella\n\n";
  for(i = 0; i < ile; i++) 
  cout << setw(5) << tablica[i];
 
   
 
  cin.ignore();
  getchar();

f = clock();
czas = (double)(f - s) / (double)(CLOCKS_PER_SEC);
cout << czas << endl;
system ("PAUSE");
  
}