Witam, mam zadanko na poziomie, zakładam, drugiego roku studiów. Treść zadania to w przybliżeniu "zmierz czas operacji wstawiania, usuwania, oraz szukania losowego elementu dla tablicy posortowanej i nieposortowanej". Hmm, z jednej strony można bez problemu dodawać elementy do tablicy:
#define TEST_SIZE 1000000 algorithmInitialTime= clock(); for (int i =1; i<TEST_SIZE; ++i) { size_t newArrSize = TEST_SIZE +i; int* newArr = new int[newArrSize]; memcpy( newArr, testArray, (TEST_SIZE+i-1) * sizeof(int) ); delete [] testArray; testArray = newArr; testArray[TEST_SIZE] = 0 } algorithTime = clock() - algorithmInitialTime; double algorithTime_seconds = static_cast<double>(algorithTime)/CLOCKS_PER_SEC; std::cout<<"Unsorted Array - inserting time in sec: "<< algorithTime_seconds<<std::endl;
(nie próbowałem tego kompilować, przepraszam za drobne błędy jeżeli są),
Analogicznie można usuwać, tylko że za każdym razem ucinać ostatni element tablicy. Przeszukanie przy pomocy bibliotek algorithm... Ale czy ja dobrze w ogóle rozumiem zadanie? Nie wiem, siedzę nad tym pół dnia i albo ostatnio podniósł się poziom na studiach, albo ja utknąłem gdzieś w zeszłej dekadzie i nie znam sposobu na rozwiązanie go bardziej po ludzku. Co o tym sądzicie? To jest dobrze, czy może pan profesor napisał "tablica", a miał na ten przykład na myśli jakiś kontener STL?