Пузырёк сортировка в диапозоне - Pascal ABC
Формулировка задачи:
Надо изменить так, чтобы числа от 15 до 50 сортировались по убыванию и записывались в начало массива.
Решение задачи: «Пузырёк сортировка в диапозоне»
textual
Листинг программы
procedure OoOoO(var b:mass;m:integer); var i,j,k,x:integer; begin //перестановка чисел от 15 до 50 вперед k:=0; for i:=1 to m do if b[i] in [15..50] then begin k:=k+1; x:=b[i]; for j:=i downto k+1 do b[j]:=b[j-1]; b[k]:=x; end; //сортировка первых К чисел for i:=1 to k-1 do for j:=i+1 to k do if b[i]< b[j]then begin x:=b[i]; b[i]:=b[j]; b[j]:=x; end; end;
Объяснение кода листинга программы
Данный код представляет собой процедуру, которая выполняет две операции: перестановку чисел от 15 до 50 вперед и сортировку первых K чисел.
- Перестановка чисел от 15 до 50 вперед:
- Переменная k инициализируется значением 0.
- В цикле for перебираются числа от 1 до m.
- Если число b[i] находится в диапазоне от 15 до 50, то:
- Переменная k увеличивается на 1.
- Переменная x присваивается значению b[i].
- В цикле for перебираются числа от i+1 до k+1.
- Значение b[j] присваивается значению b[j-1].
- Значение b[k] присваивается значению x.
- После завершения внутреннего цикла, значение b[k] будет содержать последнее число из диапазона от 15 до 50.
- Сортировка первых K чисел:
- В цикле for перебираются числа от 1 до k-1.
- В цикле inner for проверяется, что текущее число b[i] меньше следующего числа b[j].
- Если это условие выполняется, то:
- Значение x присваивается значению b[i].
- Значение b[i] присваивается значению b[j].
- Значение b[j] присваивается значению x.
- После завершения внутреннего цикла, числа будут отсортированы по возрастанию. Обратите внимание, что данный код не использует вложенные списки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д