Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 300031.doc
Скачиваний:
10
Добавлен:
30.04.2022
Размер:
178.69 Кб
Скачать

2.4. Задания для самоконтроля

Задача 2.4.1. Провести сравнительный анализ эффективности методов сортировки вставками: линейной, двоичной, центрированной.

Предлагаемый тест: сортировка целочисленного массива размера w, элементы которого - случайные величины, распределённые в интервале (о, n - 1).

Задача 2.4.2. Исследовать эффективность методов поиска: последовательного, бинарного, интерполяционного.

Предлагаемый тест: поиск т элементов в целочисленном массиве длины п.

Элементы массива - случайные величины, распределённые в интервале (о, n - 1). Ключи поиска – случайные величины, распределённые в интервале (о, n+m - 1).

Задача 2.4.3. Провести сравнительный анализ эффективности следующих методов сортировки:

1) линейный выбор с обменом, челночная сортировка, двоичная вставка;

2) сортировка Шелла, центрированная вставка;

3) стандартный обмен, быстрая сортировка, линейна вставка.

Предлагаемый тест: сортировка целочисленного массива размера n, элементы которого - случайные величины, распределённые в интервале (о, n - l).

Задача 2.4.4. Написать и протестировать функции сортировки целочисленных массивов и поиска ключей в них следующим методам:

1) челночная сортировка, бинарный поиск;

2) сортировка Шелла, бинарный поиск (рекурсивная функция);

3) быстрая сортировка, бинарный поиск;

4) центрированная вставка, интерполяционный поиск. Тест сортировки: сортировка целочисленного массива

размера n, элементы которого - случайные величины, распределённые в интервале (о, n - 1).

Тест поиска: поиск т элементов в отсортированном массиве.

Задача 2.4.5. Написать и протестировать функции сортировки записей и поиска их по ключам для следующих методов:

1) линейный выбор с обменом, бинарный поиск;

2) челночная сортировка, бинарный поиск;

3) сортировка Шелла, бинарный поиск; 4) быстрая сортировка, бинарный поиск;

5) стандартный обмен, интерполяционный поиск;

6) линейная вставка, интерполяционный поиск;

7) центрированная вставка, бинарный поиск. Запись имеет три поля, например, фамилия, имя, номер телефона. Иметь не менее 30 записей. Поиск - по любому ключу, задаваемому из меню.

Задача 2.4.6. Провести сравнительный анализ эффективности не менее двух вариантов быстрой сортировки целочисленных массивов большого размера (n > 5000).

Задача 2.4.7. Написать и протестировать функцию челночной сортировки целочисленного массива с управляемым направлением (возрастание/убывание) сортировки по признаку.

Заголовок функции должен иметь вид:

void shatl(int *a, int n, char *pr) , где a - сортируемый массив;

n - размер массива;

рr - признак, управляющий направлением сортировки: pr=”incr” - сортировка по возрастанию;

pr=”decr” - сортировка по убыванию.

Задача 2.4.8. Исследовать возможности адаптации различных методов сортировки к структуре исходного массива. С этой целью определить время сортировки целочисленного массива объёма n для следующих вариантов представления исходного массива:

неупорядоченный,

почти упорядоченный,

упорядоченный в противоположном направлении.

Методы, подлежащие исследованию:

1) линейный выбор с обменом, центрированная вставка;

2) челночная сортировка, линейная вставка;

3) сортировка Шелла, линейная вставка;

4) быстрая сортировка, бинарная вставка;

5) стандартный обмен, бинарная вставка.

Задача 2.4.9. Написать функцию, которая вставляет в упорядоченный линейный список новый элемент. Линейный список хранится связанно.

Задача 2.4.10. Написать функцию сортировки N целых чисел методом квадратичной выборки.

Задача 2.4.11. Пусть заданны на входе неупорядоченные списки студентов четырёх клубов С1, С2, С3, С4. Никакой клуб не имеет более 250 членов. Написать программу для определения всех студентов являющихся членами по крайней мере трех клубов. (Для упрощения предположить, что члены клубов перечисляются не по фамилиям, а целыми положительными числами по номерам их студенческих билетов.)

Задача 2.4.12. Пусть на входе заданно число N, за которым следует N целых чисел G1, G2, …, GN. Написать программу для сортировки последовательности G1, G2, …, GN слияния и печати результирующей последовательности. (Числа для сортировки хранятся с использованием связанного хранения; слияние делается не реальным перемещением, а изменением связей.)

Задача 2.4.13. Конечное множество целых чисел можно представить упорядоченным линейным списком целых чисел. Написать программу для:

  1. нахождения пересечения двух конечных множеств целых чисел, представленных связанными линейными списками;

б) объединения двух конечных множеств целых чисел, представленных связанными линейными списками.

Задача 2.4.14. Написать рекурсивную функцию сортировки N чисел, используя бинарную сортировку.

Задача 2.4.15. Написать функцию сортировки N Т-разрядных чисел методом битовой распределяющей сортировки, используя только один вспомогательный массив, последовательно доступной с обоих концов.