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