// // Лабораторная №9. Динамические массивы, замер времени выполнения. // lab9.h // #pragma once typedef unsigned int uint; // Ввод массива с клавиатуры // Выделяет динамическую память! // Параметры: // a – указатель на массив, который будет создан, // n – размер введенного массива. void read(int *&a, uint &n); // Вывод массива на консоль // Параметры: // a – массив, // n – размер массива. void print(const int *a, uint n); // Рекурсивная функция сортировки массива алгоритмом быстрой сортировкаи // Параметры: // first — указатель на первый элемент, // last — указатель на последний элемент. void qsort(int *first, int *last); // Функция сортировки массива алгоритмом быстрой сортировкаи // Параметры: // a — массив для сортировки, // size — длна массива a. // Обертка для функции // void qsort(int *first, int *last); void qsort(int *a, const uint size); // Указатель на функцию сортировки typedef void(*const sort_int)(int *, const uint); // Функция вычисления времени работы функции сортировки // Параметры: // sort — указатель на функцию сортировки; // a — массив для сортировки; // n — длна массива. // Возращаемое значение: // время работы функции в секундах. double sort_time_in_seconds(sort_int sort, int* a, const uint n); // Функция поиска значения в неупорядоченном массиве // Параметры: // value – искомое значение, // a — массив для поиска, // size — длна массива a. // Возращаемое значение: // индекс элемента с искомым значением, // -1, если значение в массиве не найдено. int find(int value, const int *a, const uint size); // Функция генерации массива случайных целых чисел заданной длины // Выделяет динамическую память! // Параметры: // size — длина массива. // Возращаемое значение: // массив в динамической памяти заполненный значениями std::rand() int *random_array(const uint size); // Функция вставки значения в центр динамического масива // Выделяет динамическую память! // Параметры: // value – вставляемое значение, // a — массив для вставки, // size — длна массива a. // Результат: // массив с новым значением в центре, // size - размер нового массива. void middle_insert(int value, int *&a, uint &size); // Функция удаления подряд идущих дубликатов в массиве // Выделяет динамическую память! // Параметры: // a — массив, // size — длна массива a. // Результат: // массив с удаленными значениями, // size - размер нового массива. void remove_duplicates(int *&a, uint &size);