Автор работы: Пользователь скрыл имя, 28 Января 2014 в 06:08, контрольная работа
Когда данные сортируются не в оперативной памяти, а на жестком диске, особенно если ключ связан с большим объемом дополнительной информации, то количество перемещений элементов существенно влияет на время работы. Этот алгоритм уменьшает количество таких перемещений, действуя следующим образом: за один проход из всех элементов выбирается минимальный и максимальный. Потом минимальный элемент помещается в начало массива, а максимальный, соответственно, в конец. Далее алгоритм выполняется для остальных данных. Таким образом, за каждый проход два элемента помещаются на свои места, а значит, понадобится N/2 проходов, где N — количество элементов.
{Вызов процедуры
ProverkaIskl;
{Определение множества G(i,1)}
Etap(GIndexKon[i,1]);
if GIndexKon[i-1,1]<GIndexKon[i-
GIndexKon[i,1]:=GIndexKon[i,1]
else GIndexKon[i,1]:=GIndexKon[i,1]
Label6.Caption:='Длина пути!: '+IntToStr(GIndexKon[i,1]);
{Определение множества конкурирующих пар и выбор перспективной пары}
Konkurir(RGor,MGor);
if ParKonkur[RGor,MGor]>=0 then
begin
Puti[i*2+1]:=RGor;
Puti[i*2+2]:=MGor;
end;
if ParKonkur[RGor,MGor]<0 then Flag:=false;
IsklStrok[RGor]:=1;
IsklStolb[MGor]:=1;
GorodaIJ[RGor,MGor]:=-1;
end;
{Определение оптимального маршрута}
OpredilPuti;
end;
end.