Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Сортировка методом прямого включения
Такой метод широко используется при игре в карты. Элементы (карты) мысленно делятся на уже «готовую» последовательность A1, A2, …, Ai-1, и «оставшуюся» (не сортированную) часть: Ai, Ai+1, …, AN. Суть метода заключается в том, что при каждом i-ом шаге (начиная с i = 2), из неотсортированной части извлекается i-ый элемент и помещается в «готовую» часть, при этом он вставляется на нужное место. Текстовый алгоритм метода: 1. Начало. 2. Выполнить цикл, пока i имеет значения от 2 до N, а) i-ый элемент (A(i)) поместить в ячейку A(0); б) присвоить j = -1, то есть j равно номеру элемента, находящегося слева от испытуемого (i-го) и таким образом стоящего в «готовой» последовательности; в) если А(0) ≥ А(j), то элемент А(0) поместить в ячейку А(j+1), иначе элемент А(j) поместить в ячейку А(j+1), уменьшить значение j на единицу и вновь выполнить пункт в). 3. Конец. На рис. 1 представлена блок-схема сортировки методом прямого включения. Метод работает следующим образом: на i-ом шаге (начиная с i = 2) i-ый элемент помещается в свободную ячейку (например, А(0)). Этот элемент сравнивается со стоящим в «готовой» части слева от него элементом. Если элемент А(0) меньше, то происходит сдвиг вправо сравниваемого (j-го элемента) на одну позицию, после чего для сравнения берется следующий элемент. Если же элемент А(0) при сравнении оказывается не меньше, то он помещается на место, стоящее сразу за сравниваемым элементом.
Рис. 1. Блок-схема сортировки методом прямого включения
На рис. 2 приведен пример выполнения сортировки методом прямого включения.
Рис. 2. Пример сортировки методом прямого включения
Сортировка прямым включением больше подходит для случая, когда сортируемые данные поступают последовательно (одно за другим).
Сортировка методом прямого выбора Суть метода заключается в следующем. Выбирается наименьший элемент в «оставшейся» (неотсортированной) части и меняется местами с первым элементом (в этой же неотсортированной части). После этого длина неотсортированной части уменьшается на один элемент (на первый), и весь процесс продолжается уже с (n – 1) элементами, затем с (n – 2) элементами и т.д., до тех пор, пока не останется один, самый большой элемент. Этот метод в некотором смысле противоположен методу прямого включения. В методе прямого включения на каждом шаге рассматривается только один очередной элемент и все элементы уже «готовой» части последовательности, среди которых отыскивается точка включения этого очередного элемента. А в методе прямого выбора для поиска одного (минимального) элемента просматривают все элементы неотсортированной части, и этот минимальный элемент помещается как очередной элемент в уже «готовую» часть. Текстовый алгоритм метода: 1. Начало. 2. Выполнить цикл, пока i имеет значения от 1 до N – 1, а) поместим текущий (i-ый) элемент в какую-нибудь ячейку памяти (Х) и запомним порядковый номер (i) текущего элемента (в переменной К); б) выполнить цикл, пока j имеет значения от i + 1 (то есть от следующего за i элемента) до N, шаг = +1: тело цикла: если Х > А(j), то помещаем в ячейку Х элемент А(j) и запоминаем его номер в ячейке К; в) присвоить А(К) = А(i) и А(i) = Х. 3. Конец. На рис. 3 приведен пример выполнения сортировки методом прямого выбора.
Рис. 3. Пример сортировки методом прямого выбора
На рисунке 4 приведена блок-схема сортировки методом прямого выбора.
Рис. 4. Блок-схема сортировки методом прямого выбора
Сортировка прямым выбором подходит для случая, когда все данные находятся в памяти, а отсортированные данные последовательно выводятся.
Популярное:
|
Последнее изменение этой страницы: 2016-03-22; Просмотров: 1880; Нарушение авторского права страницы