Задания по С++ — различия между версиями
Материал из SEWiki
Smal (обсуждение | вклад) (→Задание merge sort) |
Smal (обсуждение | вклад) (→Задание merge sort) |
||
Строка 12: | Строка 12: | ||
Необходимо написать функцию сортировки слиянием.<br /> | Необходимо написать функцию сортировки слиянием.<br /> | ||
Сигнатура функции должны быть такой:<br /> | Сигнатура функции должны быть такой:<br /> | ||
− | <source lang="cpp">template<typename Iter | + | <source lang="cpp">template<typename Iter> |
std::list<typename Iter::value_type> mergeSort(Iter left, Iter right);</source><br /> | std::list<typename Iter::value_type> mergeSort(Iter left, Iter right);</source><br /> | ||
Исходные данные функция модифицировать не должна, в возвращаемом списке должны быть отсортированные элементы. | Исходные данные функция модифицировать не должна, в возвращаемом списке должны быть отсортированные элементы. | ||
Затем необходимо добиться, чтоб можно было сортировать по указателям:<br /> | Затем необходимо добиться, чтоб можно было сортировать по указателям:<br /> | ||
− | <source lang="cpp">int* array = new int[SIZE]; | + | <source lang="cpp">int* array = new int[SIZE]; |
mergeSort(array, array + SIZE);</source> | mergeSort(array, array + SIZE);</source> | ||
Версия 16:16, 18 марта 2011
Содержание
Лабораторная работа №1
Задание
Лабораторная работа №2
Задание
Лабораторная работа №3
Задание merge sort
Необходимо написать функцию сортировки слиянием.
Сигнатура функции должны быть такой:
template<typename Iter>
std::list<typename Iter::value_type> mergeSort(Iter left, Iter right);
Исходные данные функция модифицировать не должна, в возвращаемом списке должны быть отсортированные элементы.
Затем необходимо добиться, чтоб можно было сортировать по указателям:
int* array = new int[SIZE];
mergeSort(array, array + SIZE);
Рекомендации: для merge можно воспользоваться std::list::merge
для получения типа, на который указывает указатель, можно воспользоваться std::iterator_traits
Лабораторная работа №4
Задание
Лабораторная работа №5
Задание