Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Простейшие методы сортировки: метод вставок

РефератПомощь в написанииУзнать стоимостьмоей работы

На шаге i для элемента аi находится подходящее место в уже отсортированной последовательности. Поиск подходящего места выполняется поэлементными сравнениями и перестановками по необходимости: сравниваем аi с аi-1, если аi < аi-1, то переставляем их, потом сравниваем аi-1 с аi-2 и т. д. Сравнения и, возможно, перестановки продолжаются до тех пор, пока не будет выполнено одно из 2-х следующих… Читать ещё >

Простейшие методы сортировки: метод вставок (реферат, курсовая, диплом, контрольная)

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

Пусть имеется n элементов, а 1 а 2, а 3,…, аn, расположенных в ячейках массива. Сортировка выполняется за (n-1) шаг, причем шаги удобно нумеровать от 2 до n. На каждом i-ом шаге обрабатываемый набор разбивается на 2 части:

  • · левую часть образуют уже упорядоченные на предыдущих шагах элементы, а 1, а 2, а 3,…, аi-1
  • · правую часть образуют еще не обработанные элементы аi, аi+1, аi+2,…, аn.

На шаге i для элемента аi находится подходящее место в уже отсортированной последовательности. Поиск подходящего места выполняется поэлементными сравнениями и перестановками по необходимости: сравниваем аi с аi-1, если аi < аi-1, то переставляем их, потом сравниваем аi-1 с аi-2 и т. д. Сравнения и, возможно, перестановки продолжаются до тех пор, пока не будет выполнено одно из 2-х следующих условий:

  • · в отсортированном наборе найден элемент, меньший аi (все остальные не просмотренные элементы будут еще меньше)
  • · достигнут первый элемент набора, а 1, что произойдет в том случае, если аi меньше всех элементов в отсортированном наборе и он должен занять первое место в массиве

Пример. Возьмем тот же исходный набор целых чисел: 15−33−42−07−12−19.

Простейшие методы сортировки: метод вставок.

Для данного примера было сделано 12 сравнений и 8 перестановок, что чуть лучше предыдущего метода. В среднем, число сравнений по данному методу примерно в 2 раза меньше, чем в методе пузырька, оставаясь тем не менее пропорциональным величине n2. Наилучший результат этот метод показывает для уже упорядоченного исходного массива — всего (n-1) сравнение.

Программная реализация включает два вложенных цикла, но в отличие от предыдущего метода, внутренний цикл реализуется как while-do с возможностью остановки при обнаружении меньшего элемента.

for i:= 2 to n do.

begin.

temp:= a [i]; j:= i — 1;

While (j > 0) and (temp < a [j]) do.

begin a [j+1]: = a [j]; j:= j — 1; end;

a [j+1]: = temp;

end;

Показать весь текст
Заполнить форму текущей работой