Метод стандартного обмена (пузырька)
Метод стандартного обмена при каждом просмотре вектора перемещает один элемент исходного вектора в соответствующую позицию, т.е. при первом просмотре наибольший элемент вектора перемещается в последнюю позицию, при втором просмотре элемент, следующий за наибольшим по величине, перемещается в предпоследнюю позицию и т.д. Для сортировки вектора нужно n-1 раз просмотреть элементы исходного вектора.
При первом просмотре первый элемент сравнивается со вторым и больший из них занимает вторую позицию, затем второй элемент сравнивается с третьим и больший занимает третью позицию и т.д. Когда n-1 элемент сравнивается с n-ым и больший занимает последнюю позицию, первый просмотр заканчивается.
Второй просмотр аналогичен первому с той лишь разницей, что последний элемент исключается из рассмотрения.
Каждый последующий просмотр исключает очередную установленную позицию из рассмотрения, тем самым укорачивая вектор.
Просмотр | Исходный вектор А | |
1-ый | 2 4 8 5 6 1 2 4 5 8 6 1 2 4 5 6 8 1 2 4 5 6 1 8 | For i:=n-1 downto 1 do For j:=1 to i do If A[j]>A[j+1] then begin r:=A[j]; A[j]:=A[j+1]; A[j+1]:=r; end; |
2-ой | 2 4 5 6 1 8 2 4 5 1 6 8 | |
3-ий | 2 4 5 1 6 8 2 4 1 5 6 8 | |
4-ый | 2 4 1 5 6 8 2 1 4 5 6 8 | |
5-ый | 2 1 4 5 6 8 1 2 4 5 6 8 |
Дата добавления: 2015-04-15; просмотров: 1183;