3. Постановка задачи сортировки и методы её решенияЗадачу сортировки данных можно сформулировать для информационной совокупности самой различной природы - для числовой информации, для слов и символов текста. Для этого, требуется определить понятие порядка для элементов массива, определить понятия "больше" и "меньше" для каждой пары элементов. Отсортировать последовательность чисел можно точно таким же способом, как и последовательность строк текста. Необходимо только определить какой из элементов пары "больше" другого. Более важным для выбора алгоритма является местоположение данных - в оперативной памяти компьютера или на внешнем устройстве. Здесь играет роль различие в основных критериях качества - для данных в оперативной памяти основными положительными свойствами метода являются быстродействие и потребности в дополнительной памяти. Для дисковых файлов очень важным показателем является количество обращений к устройству для выполнения операций ввода-вывода - оно должно быть минимальным. Различают два вида сортировки данных: - сортировка данных, расположенных в оперативной памяти компьютера (внутренняя сортировка); - сортировка данных, расположенных на внешних запоминающих устройствах (внешняя сортировка). Сформулируем постановку задачи сортировки данных для внутренней сортировки одномерного числового массива по возрастанию. Имеется одномерный массив чисел, состоящий из n элементов: X[n]. Переставить элементы массива так, чтобы их значения располагались в порядке возрастания. Другими словами, для любой пары элементов X[i] и X[i+1] выполняется неравенство вида: X[i] <= X[i+1]. В этой задаче однозначно определяется структура данных для внутренней сортировки (одномерный массив) и порядок упорядочения элементов. Ключом для определения порядка элементов является само числовое значение элемента массива. Результатом решения задачи должна быть программа сортировки массива одним или несколькими методами. При разработке программы можно воспользоваться различными алгоритмами. Наиболее известными являются следующие: - метод сортировки обменами ("пузырьковая" сортировка); - метод сортировки вставками; - метод сортировки выбором элемента; - метод разделения (алгоритм "быстрой" сортировки метод Хоара); - метод Шелла.
|