Отсортировать элементы массива методом линейного выбора - Turbo Pascal

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

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

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

Решение задачи: «Отсортировать элементы массива методом линейного выбора»

textual
Листинг программы
  1. const n = 15;
  2. var a, b, cnt: array[1..n] of integer;
  3.     i, j, k: integer;
  4. begin
  5.   randomize;
  6.   {формирование и вывод исходного массива}
  7.   writeln('Исходный массив:');
  8.   for i := 1 to n do
  9.     begin
  10.       a[i] := -99 + random(199);
  11.       write(a[i]:4)
  12.     end;
  13.   writeln;
  14.   {инициализация массива счётчиков}
  15.   for i := 1 to n do cnt[i] := 1;
  16.   {формирование массива счётчиков}
  17.   for i := 1 to n - 1 do
  18.     begin
  19.       k := 0; {количество меньших элементов для i-го элемента}
  20.       for j := i + 1 to n do
  21.       if a[i] < a[j]
  22.         then cnt[j] := cnt[j] + 1
  23.         else k := k + 1; счётчики больших элементов добавляем единицы}
  24.       cnt[i] := cnt[i] + k
  25.     end;
  26.   {перезаписываем массив в соответствии со значениями массива счётчиков}
  27.   for i := 1 to n do b[cnt[i]] := a[i];
  28.   {выводим отсортированный массив}
  29.   writeln('Отсортированный массив:');
  30.   for i := 1 to n do write(b[i]:4);
  31.   readln
  32. end.

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


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

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

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

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

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

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