fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // `boyut` yerine belki sizeof ile bir şeyler yapılabilir ama basitlik için böyle yazdım.
  5. void eleman_ekle(int *&dizi, int boyut, int eleman) {
  6. // Yeni eleman için bir eleman fazla olacak şekilde hafızadan yeni alan tut.
  7. int *yeni_dizi = new int[boyut + 1];
  8.  
  9. // Elemanları eski alandan yeniye taşı.
  10. for (int i = 0; i < boyut; i++) {
  11. yeni_dizi[i] = dizi[i];
  12. }
  13.  
  14. // Eski alanı serbest bırak.
  15. delete dizi;
  16.  
  17. // Diziyi yeni alana göstert.
  18. dizi = yeni_dizi;
  19. }
  20.  
  21. int main() {
  22. // Rastgelelik için seed'i saniyeye bağlı tanımlıyorum.
  23. srand(time(0));
  24.  
  25. cout << "Kac eleman eklensin? ";
  26. int eleman_sayisi;
  27. cin >> eleman_sayisi;
  28.  
  29. // https://w...content-available-to-author-only...s.org/measure-execution-time-function-cpp/
  30. auto start = chrono::high_resolution_clock::now();
  31.  
  32. // Başta dizi boş. Dolu da olabilir ama.
  33. int *dizi = new int[0];
  34. for (int i = 0; i < eleman_sayisi; i++) {
  35. int yeni_eleman = rand();
  36. eleman_ekle(dizi, i, yeni_eleman);
  37. }
  38.  
  39. auto end = chrono::high_resolution_clock::now();
  40.  
  41. auto gecen_zaman_ms = chrono::duration_cast<chrono::milliseconds>(end - start).count();
  42.  
  43. // Memory leak olmasın :)
  44. delete dizi;
  45.  
  46. cout << eleman_sayisi << " eleman eklemek toplamda " << gecen_zaman_ms << " milisaniye surdu.\n";
  47. }
Time limit exceeded #stdin #stdout 15s 5280KB
stdin
1000000
stdout
Kac eleman eklensin?