Begin
Min:=i+1;
Max:=I;
End
Else
Begin
Min:=i;
Max:=i+1;
For j:=i+2 to n-i+1 do
If A[j]>A[max] then
Max:=j
Else
If A[j]< A[min] then
Min:=I;
{обмен элементов}
P:=A[i];
A[i]:=A[min];
A[min]:=P;
If max:=I then
Max:=min
P:=A[N-i+1];
A[max]:=P;
End;
{вывод отсортированного массива А}
End
Алгоритмы сортировки данных. Быстрая сортировка.
Program Quick Sort
Var A:Array[1…1000] of integer;
N,T: integer,
Procedure Sort (p,q: integer);
{p,q – индексы начала и конца сортируемой части массива}
Var i,j,k integer,
Begin
If p<q then {массив из одного элемента trab – 110…}
Begin
r:=A[p];
i:=p-1
j:=q+1
Reperat
j:=j-1
un[i] A[j]<=r,
if i
begin
T:=A[i];
A[i]:=A[j];
A[j]:=T;
End,
End;
Sort (p,i),
Sort (j+1,q);
End,
End
Begin
{определение размера массива}
…………………..
Как и в сортировке слиянием массив разбивается на 2 части с условием что все элементы первой части меньше любого элемента второй потом каждая часть сортируется отдельно разбиение на части достигается упорядочиванием относительно некоторого элемента массива
Алгоритмы сортировки данных. Сортировка подсчетом.
Сортировка подсчётом — алгоритм сортировки, в котором используется диапазон чисел сортируемого массива (списка) для подсчёта совпадающих элементов. Применение сортировки подсчётом целесообразно лишь тогда, когда сортируемые числа имеют (или их можно отобразить в) диапазон возможных значений, который достаточно мал по сравнению с сортируемым множеством, например, миллион натуральных чисел меньших 1000. Эффективность алгоритма падает, если при попадании нескольких различных элементов в одну ячейку, их надо дополнительно сортировать. Необходимость сортировки внутри ячеек лишает алгоритм смысла, так как каждый элемент придётся просматривать более одного раза.
procedure CountiongSort( var ar: array of integer; min, max: integer);
var
counter: array [0..100000] of integer; i, j, index: Integer;
begin
// заполняем массив нулями
for i:=0 to high(counter) do tmpA[i]:=0; а
for i:=min to max do begin
counter[ar[i]]:=counter[ar[i]]+1;
end;
// устанавливаем значение в правильную позицию
index:=min;
for i:=min to high(counter)-1 do begin
for j:=0 to counter[i]-1 do begin
ar[index]:=i
index:=index+1;
end;
end;
end;
Моделирование алгоритмов программ с помощью блок-схем.
Do'stlaringiz bilan baham: |