Пирамидальная сортировка - Free Pascal

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

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

Взяла отсюда https://ru.wikipedia.org/wiki/%D0%9F...B2%D0%BA%D0%B0 переименовала переменные и подправила "почерк" на свой вкус. Но возникают глюки - почти все ок, кроме двух первых и двух последних элементов - они оказываются поменяны местами. Ну то есть первые два меняются местами, или последние два меняются местами. Подскажите пожалуйста что исправить, а то нет времени качественно разбирать алгоритм

Решение задачи: «Пирамидальная сортировка»

textual
Листинг программы
// тут реализация headsort
 
var a : array[1 .. 20] of integer =
  (1, 2, 3, 4, 5, 6, 47, 8, 39, 10,
   11, 12, 353, 14, 515, 16, 17, 618, 19, 20);
   i : integer;
begin
  writeln('before:');
  for i in a do write(i:4);
  writeln;
  writeln('after:');
  headsort(a);
  for i in a do write(i:4);
end.

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

В данном коде реализована сортировка пирамидальным методом, также известная как сортировка Хоара.

  1. Объявлен массив a типа array[1 .. 20] of integer, который содержит список чисел для сортировки.
  2. В цикле for выводятся все элементы массива a с помощью функции write(). Каждый элемент выводится с помощью функции write(i:4), где i - это индекс элемента в массиве.
  3. После вывода всех элементов вызывается функция headsort(a), которая выполняет сортировку пирамидальным методом.
  4. После сортировки выводятся все элементы массива a с помощью функции write(). Вот список не более 20 элементов, оформленный в виде кода на языке Pascal:
  5. var a: array[1 .. 20] of integer = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
  6. i: integer;
  7. begin
  8. writeln('before:');
  9. for i in a do write(i:4);
  10. writeln;
  11. writeln('after:');
  12. headsort(a);
  13. for i in a do write(i:4);
  14. end.

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


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

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

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