Дан целочисленный вектор А(n). Отсортировать его элементы методом просеивания. - Pascal ABC

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

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

Дан целочисленный вектор А(n). Отсортировать его элементы методом просеивания.
Листинг программы
  1. Program P1;
  2. uses crt;
  3. const
  4. n_max = 100;
  5. var
  6. a: array[1..n_max] of integer;
  7. n, m, i, j, q, pos: integer;
  8. t: boolean;
  9. max, tmp: integer;
  10. begin
  11. write('Введите размерность массива: ');
  12. readln(n);
  13. WriteLn ('Введите элементы массива');
  14. for i := 1 to n do
  15. begin
  16. a[i] := -n_max div 2 + n_max;
  17. write('A[',i,']= ');
  18. ReadLn (A[i]);
  19. if a[i] > max then
  20. begin
  21. max := a[i];
  22. pos := i;
  23. end;
  24. end;
  25. writeln;
  26. i := 1;
  27. while (i < n) and not t do
  28. begin
  29. if a[i] < a[i + 1] then
  30. t := true;
  31. inc(i);
  32. end;
  33. for j := 1 to n - 1 do
  34. for q := j + 1 to n do
  35. if a[j] > a[q] then
  36. begin
  37. tmp := a[j];
  38. a[j] := a[q];
  39. a[q] := tmp;
  40. end;
  41. writeln('Отсортированный массив: ');
  42. for i := 1 to n do
  43. write(a[i]:5);
  44. end.

Решение задачи: «Дан целочисленный вектор А(n). Отсортировать его элементы методом просеивания.»

textual
Листинг программы
  1. const
  2.   n_max = 100;
  3.  
  4. var
  5.   a: array[1..n_max] of integer;
  6.   n, i, j, q: integer;
  7.   tmp: integer;
  8.  
  9. begin
  10.   write('Введите размерность массива: ');
  11.   readln(n);
  12.   WriteLn('Введите элементы массива');
  13.   for i := 1 to n do
  14.   begin
  15.     write('A[', i, ']= ');
  16.     ReadLn(A[i]);
  17.   end;
  18.   writeln;
  19.   for j := 1 to n - 1 do
  20.     for q := j + 1 to n do
  21.       if a[j] > a[q] then
  22.       begin
  23.         tmp := a[j];
  24.         a[j] := a[q];
  25.         a[q] := tmp;
  26.       end;
  27.   writeln('Отсортированный массив: ');
  28.   for i := 1 to n do
  29.     write(a[i]:5);
  30. end.

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

В данном коде объявлены следующие переменные:

  • n_max - максимальное значение для индекса массива (не используется в данном коде);
  • a - массив целых чисел (целочисленный вектор) размером от 1 до n_max;
  • n - текущая размерность массива;
  • i - переменная для итерации по элементам массива;
  • j - переменная для итерации по элементам массива;
  • q - переменная для итерации по элементам массива;
  • tmp - временная переменная для хранения значения, которое будет помещено в другую позицию в массиве при обмене элементов; Код начинается с запроса у пользователя размера массива и его элементов. Затем происходит итерация по каждому элементу массива, где пользователь вводит значение элемента. После этого выполняется алгоритм сортировки методом просеивания. Алгоритм сортировки методом просеивания заключается в том, что на каждой итерации сравниваются два соседних элемента массива. Если текущий элемент больше следующего, то они меняются местами. Этот процесс повторяется до тех пор, пока все элементы не будут отсортированы. В данном коде алгоритм сортировки методом просеивания реализован с помощью двух вложенных циклов. Внешний цикл выполняется n-1 раз, где n - текущая размерность массива. Внутренний цикл выполняется n-1 раз, где n - текущая размерность массива. На каждой итерации внутреннего цикла происходит сравнение и обмен элементов. После выполнения алгоритма сортировки выводится отсортированный массив.

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы