6.8. Задачи по сортировке

55. Напишите программу, которая считывает три числа, расположенных в любой последовательности, упорядочивает их и печатает результат упорядочения.

После этого модифицируйте программу таким образом, чтобы она считывала константу ЛГ, затем вводила N чисел, выполняла их сортировку и выдавала на печать упорядоченную последовательность.

56. Напишите программы сортировки, реализующие следующие методы:

а) пузырьковый, заключающийся в том, что вначале берется минимальный элемент массива и помещается по адресу А1, затем выбирается второй минимальный элемент и помещается по адресу А2, после этого отыскивается третий минимальный элемент и пересылается по адресу АЗ и т. д.;

б) слияния, при котором требуются четыре массива А, В, С, сортировка по методу слияния начинается с записи всех элементов в массив А; затем каждый элемент щ, начиная с первого, сравнивается с элементами щ+{ и осуществляется пересылка ш в массив С до тех пор, пока не окажется, что щ > щ+и Как только это произойдет, элемент ш+1 засылается в массив Б и последующие ш записываются в этот же массив до тех пор, пока не окажется, что Щ > щ+и после чего снова осуществляется переключение на массив С. Когда массив А будет исчерпан, в массивах С и Б будет находиться ряд отсортированных подпоследовательностей элементов. Затем берутся первые по счету подпоследовательности массивов С и О, объединяются в соответствующем порядке и записываются в массив А. После этого объединяются вторые по счету подпоследовательности массивов С и О и записываются в массив В. Затем выбираются третьи подпоследовательности элементов массивов С и Б и после слияния помещаются в массив А. Описанный процесс поочередного занесения подпоследовательностей в массивы А и В продолжается до тех пор, пока не будут исчерпаны массивы С и О. Как только это произойдет, аналогичным образом объединяются массивы А и В, пока все сортируемые элементы не окажутся сосредоточенными в единственном массиве;

в) цифровой, состоящий в том, что упорядочение начинается с младших двоичных разрядов сортируемых чисел; далее то же самое проделывается со следующим, более старшим разрядом без нарушения предыдущего порядка. Для упрощения задачи используйте только положительные целые числа; если вы хотите усложнить проблему, последнее ограничение можно снять. В программах карточной сортировки применяется именно этот метод;

г) какой-либо метод, придуманный вами;

д) сравните различные методы сортировки по скорости.

Один из возможных способов сравнения заключается в том, чтобы сформировать 1000 случайных чисел, отсортировать их различными методами и определить, какой из них быстрее всего приводит к конечному результату.

6.7. Задачи на компилирование || Оглавление || 6.9. Вычислительные задачи


Услуги