Дан массив А размера N. Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность. Использовать метод «пузырьковой» сортировки — Pascal(Паскаль)

(метод «пузырьковой сортировки» — просматривать массив, сравнивая его соседние элементы (А1 и А2, А2 и А3 и т.д.) и меняя их местами, если левый элемент пары больше правого;повторить описанные действия N-1 раз), модифицировав его следующим образом: создать вспомогательный целочисленный массив номеров I, заполнив его числами от 1 до N; просматривать массив А, сравнивая пары элементов массива А с номерами I1, I2 и I3,…и меняя местами соответствующие элементы массива I, если левый элемент пары больше правого. Повторив описанную процедуру просмотра N-1 раз, получим в массиве I требуемую последовательность номеров

uses crt;
const n=10;
var a,i:array[1..n] of integer; j,t:integer;
 
begin
clrscr;
 
for j:=1 to n do
a[j]:=random(10);
for j:= 1 to n do
write (' ',a[j]);
 
for j:=1 to n-1 do
 
if A[I[j]] > A[I[j+1]] then begin {если текущий элемент больше следующего переставим их индексы}
T := I[j]; {сначала сохраним индекс в промежуточной переменной}
I[j] := I[j+1]; {переставляем индексы}
I[j+1] := T; {восстанавливаем значение}
end;
write(' ',I[j]);
writeln('Press Enter to exit...');
readkey;
end.

Leave a Comment

87 + = 96