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

Материал из SEWiki
Перейти к: навигация, поиск
(Задание merge sort)
(Задание merge sort)
Строка 12: Строка 12:
 
Необходимо написать функцию сортировки слиянием.<br />
 
Необходимо написать функцию сортировки слиянием.<br />
 
Сигнатура функции должны быть такой:<br />
 
Сигнатура функции должны быть такой:<br />
<source lang="cpp">template<typename Iter><br />
+
<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];<br />
+
<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

Задание

To be continued