Задать вопрос
12 февраля, 16:51

Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок. (pascal)

+3
Ответы (1)
  1. 12 февраля, 18:10
    0
    Const

    n = 10;

    var

    a: array[1 ... n] of integer;

    i, j, t: integer;

    flag:boolean;

    begin

    Randomize;

    Writeln ('Исходный массив') ;

    for i : = 1 to n do

    begin

    a[i] : = random (101) - 50;

    Write (a[i]:4)

    end;

    Writeln;

    i:=1;

    repeat

    flag:=true;

    for j : = 1 to n-i do

    if a[j] > a[j+1] then

    begin t : = a[j]; a[j] : = a[j+1]; a[j+1] : = t; flag:=false end;

    Inc (i) ;

    until (i>n-1) or flag;

    Writeln ('Отсортированный по возрастанию массив') ;

    for i : = 1 to n do Write (a[i]:4) ;

    Writeln

    end.

    Тестовое решение:

    Исходный массив

    -32 - 7 2 2 50 - 33 1 31 4 - 16

    Отсортированный по возрастанию массив

    -33 - 32 - 16 - 7 1 2 2 4 31 50
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок. (pascal) ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы