Сортировка случайных чисел методом Шелла - Pascal

Узнай цену своей работы

Формулировка задачи:

Выполнить сортировку одномерного массива А[20] случайных целых чисел по возрастанию методом Шелла. Вывести на экран все этапы сортировки. Pascal ABC. Помогите пожалуйста.

Решение задачи: «Сортировка случайных чисел методом Шелла»

textual
Листинг программы
uses crt;
const b:array[1..5] of byte = (9,5,3,2,1);
var a:array[0..20] of integer;
    n,i,j,k,gap,temp:integer;
    w:char;
begin
randomize;
n:=10;
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(100);
  write(a[i]:4)
 end;
writeln;
writeln;
for k:=1 to 5 do
 begin
  gap:=b[k];
  for i:=gap to n do
   begin
    temp:=a[i];
    j:=i-gap;
    while (temp<a[j]) and (j>=gap) do
     begin
      a[j+gap]:=a[j];
      j:=j-gap;
     end;
    a[j+gap]:=temp;
   end;
 
 end;
writeln('Отсортированный массив:');
for i:=1 to n do
write(a[i]:4);
readln
end.

Объяснение кода листинга программы

  1. Установка начального значения переменной n равным 10.
  2. Заполнение массива a случайными числами от 0 до 99.
  3. Вывод исходного массива на экран.
  4. Заполнение переменной gap значением элемента массива b с индексом k.
  5. Заполнение переменной temp значением элемента массива a с индексом i.
  6. Заполнение переменной j значением i минус gap.
  7. Пока элемент массива temp меньше элемента массива a с индексом j и j больше или равно gap, выполнять следующие действия:
    • Переместить элемент массива a с индексом j плюс gap в переменную temp.
    • Уменьшить значение переменной j на gap.
  8. После завершения цикла поместить элемент массива temp в массив a с индексом j плюс gap.
  9. Повторять шаги 4-8 для всех значений переменной k.
  10. Вывод отсортированного массива на экран.
  11. Чтение символа с клавиатуры для завершения программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы