Метод стандартного обмена (пузырька)

Метод стандартного обмена при каждом просмотре вектора перемещает один элемент исходного вектора в соответствующую позицию, т.е. при первом просмотре наибольший элемент вектора перемещается в последнюю позицию, при втором просмотре элемент, следующий за наибольшим по величине, перемещается в предпоследнюю позицию и т.д. Для сортировки вектора нужно 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  

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: