Задания по С++ — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Новая страница: « == Лабораторная работа №1 == Задание == Лабораторная работа №2 == Задание == Лабораторная ра…»)
 
(добавил задание merge sort)
Строка 1: Строка 1:
 
 
== Лабораторная работа №1 ==
 
== Лабораторная работа №1 ==
  
Строка 10: Строка 9:
 
== Лабораторная работа №3 ==
 
== Лабораторная работа №3 ==
  
Задание
+
=== Задание merge sort ===
 +
Необходимо написать функцию сортировки слиянием.<br />
 +
Сигнатура функции должны быть такой:<br />
 +
<code>template<typename Iter><br />
 +
std::list<typename Iter::value_type> mergeSort(Iter left, Iter right);</code><br />
 +
Исходные данные функция модифицировать не должна, в возвращаемом списке должны быть отсортированные элементы.
 +
 
 +
Затем необходимо добиться, чтоб можно было сортировать по указателям:<br />
 +
<code>int* array = new int[SIZE];<br />
 +
mergeSort(array, array + SIZE);</code>
 +
 
 +
''Рекомендации'': для merge можно воспользоваться <code>std::list::merge</code>
 +
для получения типа, на который указывает указатель, можно воспользоваться <code>std::iterator_traits</code>
  
 
== Лабораторная работа №4 ==
 
== Лабораторная работа №4 ==

Версия 13:45, 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

Задание

To be continued