1. Дан массива a. Найдите число инверсий в нем. Время O(n log n)
2. Покажите, что при правильной (какой?) реализации сортировка слиянием яв- ляется устойчивой (то есть, не меняет порядок равных элементов). 3. Покажите, как сделать сортировку слиянием снизу вверх, без рекурсии 4. Приведите пример, когда быстрая сортировка работает за Ω(n2 ), если в каче- стве разделителя выбирается: (a) самый левый элемент отрезка, (b) самый правый элемент отрезка, (c) центральный элемент отрезка (a[(l + r) / 2]). 5. Сколько дополнительной памяти использует быстрая сортировка в среднем и в худшем случае? 6. Дан массив из n чисел. Необходимо для каждого элемента найти число эле- ментов, которые меньше его. Время работы O(n log n). 7. Возьмем массив a из n элементов, каждый из которых — это число 1 до n. Цик- лический сдвиг номер i — это последовательность ai , ai+1 , ..., an1 , a0 , a1 , ..., ai1 . Предложите алгоритм сортировки циклических сдвигов в лексикографиче- ском порядке за время O(n2 ). 8. Дан массив из n чисел от 1 до k, разработайте структуру данных, которая за O(1) отвечает на запросы вида «Сколько в массиве элементов от a до b?». Время на предподсчет O(n + k). 9. Есть массив длины n. Посчитайте, сколько есть способов упорядочить его элементы в неубывающем порядке. 10. На прямой живут n друзей, i-й друг живет в точке xi . Они хотят встретиться в одной точке. Помогите им найти такую точку, чтобы суммарное расстояние, которое они пройдут, было бы минимально.