Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритми та методи обчислень

Частина тексту файла (без зображень, графіків і формул):

Кафедра ЕОМ  Звіт з лабораторної роботи № 5 з дисципліни: “Алгоритми та методи обчислень” Варіант № 7 Мета роботи: ознайомитися з парадигмою функційного програмування. Вхідні дані 7: 565, 566, 561, 561, 557, 560, 561, 556, 556, 552, 559, 551, 556, 557, 552, 554, 546, 551, 552, 547 Лістинг програми: #include <iostream> #include <list> #include <algorithm> #include <future> template<typename T> std::list<T> parallel_quick_sort(std::list<T> input) { if (input.size() < 2) { return input; } //move frist element in the list to result list and take it as pivot value std::list<T> result; result.splice(result.begin(), input, input.begin()); T pivot = *result.begin(); //partition the input array auto divide_point = std::partition(input.begin(), input.end(), [&](T const & t) { return t < pivot; }); std::list<T> lower_list; lower_list.splice(lower_list.end(), input, input.begin(), divide_point); auto new_lower(parallel_quick_sort(std::move(lower_list))); std::future<std::list<T>> new_upper_future (std::async(&parallel_quick_sort<T>, std::move(input))); result.splice(result.begin(), new_lower); result.splice(result.end(), new_upper_future.get()); return result; } int main() { std::list<int> my_list; my_list.push_back(565); my_list.push_back(566); my_list.push_back(561); my_list.push_back(561); my_list.push_back(557); my_list.push_back(560); my_list.push_back(561); my_list.push_back(556); my_list.push_back(552); my_list.push_back(559); my_list.push_back(551); my_list.push_back(556); my_list.push_back(557); my_list.push_back(552); my_list.push_back(554); my_list.push_back(556); my_list.push_back(551); my_list.push_back(552); my_list.push_back(547); std::cout<< "Array:"<<std::endl; for (auto &var : my_list) { std::cout << var << " "; } auto result = parallel_quick_sort<int>(my_list); std::cout<<std::endl<<"Sorted array:"<< std::endl; for (auto &var : result) { std::cout << var << " "; } std::cout<<std::endl; } Скріншот виконання програми:  Висновок - ознайомився з парадигмою фінкційного програмування
Антиботан аватар за замовчуванням

14.10.2018 19:10-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!