Вариант №1.
Написать код программы на С++, реализующую метод сортировки двухпутевыми вставками, являющейся некоторой модификацией сортировки простыми вставками, являющейся некоторой модификацией сортировки простыми вставками в следующем виде. Отдельно вводится некоторый класс, содержащий выходной массив размером n. Этот выходной массив действует как некоторая циклическая очередь. Элемент x(1) помещается в средний этого массива. Когда непрерывная группа элементов находится в этом массиве, место для нового элемента отводится при помощи сдвига всех элементов с меньшими значениями на один шаг влево или элементов большего значения на один шаг вправо. Выбор, в какую сторону выполнять сдвиг, зависит от того, какой из них приведет к меньшему количеству сдвигов.

Вариант №2.
Написать код программы на C++, реализующую сортировку методом "четных и нечетных транспозиций" которая выполняется следующим образом. Выполняйте несколько раз просмотры файла. На первом просмотре сравнивайте x(i) c x(i+1) для всех нечетных i(1,3…). Каждый раз, когда x(i)>x(i+1) выполняйте транспозицию этих двух элементов (т.е. меняйте их местами). Продолжайте эти просмотры до тех пор пока файл не будет отсортирован определите критерий окончания этой сортировки.

Вариант №3.
Написать код программы на C++, в которой генерируется случайно заданный файл размером 100 при использовании стандартной библиотечной функции (генератора случайных чисел). Реализуйте сортировку "Методом пузырька" и "Шейкер-сортировку" таким образом, чтобы накапливалась информация о действительном числе сравнений и действительном числе сделанных транспозиций.

Вариант №4.
Написать код программы на С++, в которой генерируется несколько файлов размером 10, 100 и 1000 при использовании стандартной библиотечной функции – генератора случайных чисел. Реализуйте сортировку методом двоичных включений. Измерьте затраты времени для каждого из этих файлов.

Вариант №5.
Написать код программы на С++, в которой генерируются несколько файлов размером 10, 50, 100 и 1000 при использовании стандартной библиотечной функции – генератора случайных чисел. Реализуйте сортировку методом Шелла, использовав соответствующую последовательность шагов. Измерьте затраты времени для каждого из этих файлов.

Вариант №6.
Написать код программы на С++, реализующей метод "быстрой сортировки". Модифицируйте программу "быстрой сортировки" так, чтобы использовалась сортировка "методом пузырька", если некоторый подмассив является небольшим. Определите, использовав реальные подсчеты так, чтобы эта смешанная стратегия была более эффективной, чем обычная "быстрая сортировка".

Вариант №7.
Написать код программы на С++, в которой генерируется несколько файлов размером 10, 100 и 1000 при использовании стандартной библиотечной функции – генератора случайных чисел. Реализуйте сортировку этих файлов методом прямого включения и методом двоичных включений. Измерьте затрат времени для каждого из этих файлов при сортировке методом прямого включения и методом двоичных включений.

Вариант №8.
Написать код программы на C++, в который генерируется несколько файлов размером 10, 100 и 1000 при использовании стандартной функции – генератора случайных чисел. Реализуйте сортировку методом прямого включения и методом прямого выбора. Измерьте затраты времени для каждого из этих файлов при сортировке методом прямого включения и методом прямого выбора.

Вариант № 9.
Предположим, что некоторый файл содержит целые числа в указанные от а до b, причем многие числа повторяются несколько раз. Написать код программы на C++, реализующей сортировку методом распределенного подсчета, которая выполняется следующим образом. Заводится некоторый массив number размером b-a+1 и элементу number(i-a+1) присваивается значение, равное тому, сколько раз число i появляется в данном файле. Затем значения в файле. Затем значения в файле соответственно переустанавливаются. Таким образом необходимо реализовать сортировку массива X методом распределенного подсчета. Массив X имеет размер и содержит целые числа в диапазоне от a до b.

Вариант №10.
Написать код программы на C++, в которой генерируется насколько файлов размером 10, 100, 1000 при использовании стандартной библиотечной функции – генератора случайных чисел. Реализуйте сортировку этих файлов "метод пузырька" и "шейкерную" сортировку таким образом, чтобы накапливалась информация о действительном числе сделанных перестановок (транспозиций).

Вариант №11.
Напишите код программы на C++, которая сортирует файл, сначала 1) применяя поразрядную сортировку для r старших значений цифр (где r является некоторой заданной константой), а затем 2) использует метод сортировки простыми вставками для всего файла.

Вариант №12.
Напишите код программы на С++, в которой: 1) сгенерируйте два случайно заданных файла размером 10 при использовании стандартной библиотечной функции – генератора случайных чисел; 2) осуществите объединение этих двух файлов путем сортировки простым слиянием.

Вариант №13.
Напишите код программы на С++, в которой происходит объединение отсортированных массивов а и b в массив с методом бинарного слияния. Метод сортировки путем бинарного слияния состоит в следующем. Пусть la и lb – это числа элементов в массивах a и b соответственно, и предположим, что la>=lb. Разделим массив а на (lb +1) примерно равных подмассивов. Сравним b(1) с наименьшим элементом во втором подмассиве массива а. Если b(1) меньше, тогда найдем a(i) такой, что a(i)<=b(1)<=a(i+1), при помощи бинарного поиска в первом подмассиве. Выведем в массив с все элементы первого подмассива до элемента a(i) включительно, а затем выведем в массив с элемент b(1). Повторите этот процесс для элементов b(2), b(3),… b(j), где b(j) оказывается элементом большим, чем наименьший элемент во втором подмассиве. Выведите в массив с все оставшиеся элементы из первого подмассива. Затем сравните b(j) с наименьшм элементом в третьем подмассиве массива а и т. д.

Вариант№14
Напишите код программы на С++, осуществляющей сортировку массива А с помощью "быстрой сортировки". Выбирайте центральный элемент из середины списка. Во время каждого прохода фиксируйте все обмены элементов между нижним и верхним подсписками. Осуществите печать состояния последовательности после каждого прохода.
А = 790, 175, 284, 581, 374, 799, 852, 685, 486, 347

Вариант№15
Напишите код программы на С++, в которой: 1) сгенерируйте случайно заданный файл размером 10 при использовании стандартной библиотечной функции – генератора случайных чисел; 2) разбейте файл пополам. Отсортируйте каждую половину с помощью сортировки прямым выбором, а затем осуществить сортировку двух половин методом простого слияния.

Вариант№16
Напишите код программы на С++, в которой сортируется массив целых чисел, изменяющихся от 1 до 20, сгенерированный случайно. Выполните поразрядную сортировку данного массива, используя для представления каждой группы абстрактную очередь. Осуществляйте печать после каждого просмотра.

Вариант№17
Напишите код программы на С++, в которой генерируются два случайно заданных файла размером 100. Необходимо объединить их методом сортировки простым слиянием. Осуществляйте печать после каждого просмотра.

Вариант№18
Напишите код программы на С++, в которой сортируется символьная последовательность V, B, L, A, Z, Y, C, H, S, B, S, H методом прямого выбора и методом прямого включения. Осуществляйте печать после каждого просмотра.

Вариант№19
Напишите код программы на С++ для отображения данных в табличные индексы с использованием хеш-функции hashf(x)=x%11. Данные вставляются в таблицу в следующем порядке: 11, 13, 12, 34, 38, 33, 27, 22. Постройте хеш-таблицу методом открытой адресации.