2022-fall-computer-science

Практика

Разминка

  1. Создайте в своём репозитории 2022-polytech-%фамилия% директорию 04_search_sort/intro_sort
  2. Настройте cmake-проект
  3. Завершите программу ```cpp #include #include

void fill_array_random(int arr[], int n, int a, int b) { std::random_device dev; std::mt19937 rng(dev()); std::uniform_int_distribution<std::mt19937::result_type> dist(a,b);

for(int i=0; i<n; ++i)
{
    arr[i] = dist(rng);
} }

void print_array(int arr[], int n, bool show_index = false) { // Напишите функцию }

int main() { int arr[10]; int n = sizeof(arr) / sizeof(arr[0]); fill_array_random(arr, n, 0, 100); print_array(arr, n); return 0; }

4. Реализуйте функцию `print_array` которая выводи массив на экран в следующем виде: `{a, b, c, d, e, f}`, где буквы обозначают элементы массива
5. Если `show_index` равен `true`, то программа должна выводить массив с индексами:  `{0: a, 1: b, 2: c, 3: d, 4: e, 5: f}`
6. Изучите реализацию функции `fill_array_random`
7. Отправьте решение на GitHub

## Задание
1. Создайте в своём репозитории `2022-polytech-%фамилия%` директорию `04_search_sort/sort_cmp`
2. Настройте cmake-проект 
3. Напишите 2 функции, которые реализуют сортировку выбором и быструю сортировку
4. Напишите программу, которая измеряет врмемя работы функций сортировки на массивах разной длины, заполненных случайными числами, и выводит результаты

1e01: xx (ss), xx (qs) 1e02: xx (ss), xx (qs) 1e03: xx (ss), xx (qs) 1e06: xx (ss), xx (qs) 1e09: xx (ss), xx (qs) 1e12: xx (ss), xx (qs)

здесь `xx` — время, `ss` — selection sort, `qs` — quick sort

5. Отправьте решение на GitHub


## Домашнее задание
1. Найдите оценку асимптотической сложности алгоритмов из предыдущего задания
2. Напишите вывод формул в файле `README.md` в своём репозитории `2022-polytech-%фамилия%`
3. Используйте MathJax для оформления: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions 

### Пример оформления

Код:

\(O(n^2)\) ```

отображается как

\[O(n^2)\]
  1. Отправьте решение на GitHub

Комментарии