diff --git a/task7.cpp b/task7.cpp index e029079..718e6fb 100644 --- a/task7.cpp +++ b/task7.cpp @@ -6,7 +6,10 @@ // Короткий и длинный C-массивы int arr_short[] = {5, 7, 1, 2, 15, 29, 100, 1000}; +int arr_short_len = sizeof(arr_short) / sizeof(arr_short[0]); + int arr_long[] = {165, 2, 23, 7, 9, 124, 4, 5000, 26, 20, 80, 55, 6, 1, 8, 10, 9, 12, 3, 6, 7, 5, 4, 4, 3, 2, 1, 100, 1000, 10000}; +int arr_long_len = sizeof(arr_long) / sizeof(arr_long[0]); // Короткий и длинный векторы std::vector vec_short = {5, 7, 1, 2, 15, 29, 100, 1000}; @@ -22,12 +25,15 @@ double benchmark(void (*func)(int[], int), int arr[], int n) // нам не нужно очищать за собой память (удалять массивы). // Обязательно удаляйте массивы, если используете указатели! int arr_copy[n]; - std::copy(arr, arr + n, arr_copy); + std::copy(arr, arr + n, arr_copy); // arr - исходный, arr + n - конец, arr_copy - новый массив + // Начинаем отсчет времени, выполняем функцию сортировки, + // заканчиваем отсчет. auto start = std::chrono::high_resolution_clock::now(); func(arr_copy, n); auto end = std::chrono::high_resolution_clock::now(); + // Возвращаем разницу начала и конца в наносекундах return std::chrono::duration_cast(end - start).count(); } @@ -59,10 +65,10 @@ double benchmark_vector(void (*func)(std::vector&, int, int), std::vector