Сортировка
массива является одной из наиважнейших базовых задач в программировании. Каждый
пользователь ПК сотни раз за день выполняет этот алгоритм: просматривая файлы в
папке, сортирует их по размеру, дате изменения, имени; работая с базой данных,
сортирует фамилии в алфавитном порядке; слушая музыкальные композиции,
просматривает файлы в отсортированном по имени исполнителя списке. Большинство
прикладных, офисных и даже игровых программ используют в своём коде алгоритмы
сортировки.
Представьте,
насколько трудно было бы трудно пользоваться словарем, если бы слова в нем были
расположены не в алфавитном порядке. Точно так же от порядка, в котором хранятся
элементы в памяти компьютера, во многом зависит скорость и простота алгоритмов,
предназначенных для их обработки.
По
оценкам производителей компьютеров 60-х годов в среднем более четверти машинного
времени тратилось на сортировку. Во
многих вычислительных системах на нее уходит больше половины машинного времени.
Таким образом, уже тогда стало ясно, что сортировка заслуживает серьезного
изучения с тоски зрения ее практического использования. Но даже если бы
сортировка была бы почти бесполезна, нашлась бы масса других причин заняться ею!
Появление изощренных алгоритмов сортировки говорит о том, что она и сама по себе
интересна как объект исследования. В этой области существует множество
увлекательных нерешенных задач наряду с немногими уже
решенными.
Задача
сортировки заключается в том, чтобы упорядочить массив с заданным количеством
элементов.
В
настоящей работе будет представлена так называемая сортировка слиянием.
На
основе последовательного алгоритма требуется разработать параллельный вариант
для нескольких процессоров с целью ускорения выполнения процесса сортировки на
больших массивах, проанализировать полученные результаты, привести оценки
сложности для алгоритма.