Создать программу для сортировки массива тремя методами (обменная сортировка (метод...

0 голосов
101 просмотров

Создать программу для сортировки массива тремя методами (обменная сортировка (метод «пузырька»), Сортировка выбором, Метод простого включения (сортировка вставками)). Все массивы сформировать случайным образом четными целыми числами в диапазоне [-40,0].


Информатика (17 баллов) | 101 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

ОТДЕЛ ЗаданиеПроСортировку+;

ИСПОЛЬЗУЕТ Матем ИЗ "...\Отделы\Числа\";

ПОСТ

 ДлинаМассива = 100;

ПЕР

 массивы: РЯД 3 ИЗ РЯД ДлинаМассива ИЗ ЦЕЛ;

 сч1, сч2: УЗКЦЕЛ;

ЗАДАЧА Вставкой(ряд+:РЯД ИЗ ЦЕЛ);

ПЕР

 число:ЦЕЛ;

 позНеуп:ЦЕЛ;

 позВставки:ЦЕЛ;

 поз:ЦЕЛ;

УКАЗ

 ОТ позНеуп:=1 ДО РАЗМЕР(ряд)-1 ВЫП

   число:=ряд[позНеуп];

   позВставки:=0;

   ПОКА число < ряд[позВставки] ВЫП

     УВЕЛИЧИТЬ(позВставки)

   КОН;

   ОТ поз:=позНеуп-1 ДО позВставки ПО -1 ВЫП

     ряд[поз+1]:=ряд[поз]

   КОН;

   ряд[позВставки]:=число

 КОН

КОН Вставкой;

ЗАДАЧА Выбором(ряд+:РЯД ИЗ ЦЕЛ);

ПЕР

 позВставки:ЦЕЛ;

 позНеуп:ЦЕЛ;

 число:ЦЕЛ;

 поз:ЦЕЛ;

УКАЗ

 ОТ позНеуп:=0 ДО РАЗМЕР(ряд)-2 ВЫП

   позВставки:=позНеуп;

   число:=ряд[позНеуп];

   ОТ поз:=позНеуп+1 ДО РАЗМЕР(ряд)-1 ВЫП

     ЕСЛИ число < ряд[поз] ТО

       число:=ряд[поз];

       позВставки:=поз

     КОН

   КОН;

   ряд[позВставки]:=ряд[позНеуп];

   ряд[позНеуп]:=число

 КОН

КОН Выбором;

ЗАДАЧА Обменом(ряд+:РЯД ИЗ ЦЕЛ);

ПЕР

 число:ЦЕЛ;

 позНеуп:ЦЕЛ;

 позОбмена:ЦЕЛ;

УКАЗ

 ОТ позНеуп:=0 ДО РАЗМЕР(ряд)-2 ВЫП

   ОТ позОбмена:=РАЗМЕР(ряд)-2 ДО позНеуп ПО -1 ВЫП

     ЕСЛИ ряд[позОбмена] < ряд[позОбмена+1] ТО

       число:=ряд[позОбмена];

       ряд[позОбмена]:=ряд[позОбмена+1];

       ряд[позОбмена+1]:=число

     КОН

   КОН  

 КОН

КОН Обменом;

УКАЗ

 ОТ сч1 := 0 ДО 2 ВЫП

   ОТ сч2 := 0 ДО ДлинаМассива - 1 ВЫП

     массивы[сч1, сч2] := УЗК(ВШИРЦЕЛ(ЦЕЛЧАСТЬ(Матем.случ() * 21) - 20 * 2))

   КОН

 КОН;

 Обменом(массивы[0]);

 Выбором(массивы[1]);

 Вставкой(массивы[2])

КОН ЗаданиеПроСортировку.

(654k баллов)
0

а можно на языке паскале?

0

Нет. Следующий раз подумаешь, прежде чем отмечать верные ответы "нарушением".