(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ОТДЕЛ Вставкой;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(* НАЗНАЧЕНИЕ: упорядочивание ряда простой вставкой *)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(*────────────────────────────────────────────────────────────────────────────*)
ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ);
(* Цель: упорядочивание ряда целых чисел простой вставкой
* До: <ряд> - исходный ряд
* После: <ряд> - упорядоченный ряд *)
ПЕР
число:ЦЕЛ; (* обрабатываемое число *)
позНеуп:ЦЕЛ; (* до этой позиции ряд уже упорядочен *)
позВставки:ЦЕЛ;(* позиция вставки для обрабатываемого числа *)
поз:ЦЕЛ;
УКАЗ
ОТ позНеуп:=1 ДО РАЗМЕР(ряд)-1 ВЫП
число:=ряд[позНеуп];
(* ищем прямым перебором позицию вставки *)
позВставки:=0;
ПОКА число < ряд[позВставки] ВЫП
УВЕЛИЧИТЬ(позВставки)
КОН;
(* раздвигаем в этом месте ряд *)
ОТ поз:=позНеуп-1 ДО позВставки ПО -1 ВЫП
ряд[поз+1]:=ряд[поз]
КОН;
(* вставляем туда число *)
ряд[позВставки]:=число
КОН
КОН Упорядочить;
КОН Вставкой.
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|