Отсортировать элементы массива методом линейного выбора - Turbo Pascal
Формулировка задачи:
Дан целочисленный вектор А(n). Отсортировать его элементы методом линейного выбора с подсчётом
Решение задачи: «Отсортировать элементы массива методом линейного выбора»
textual
Листинг программы
- const n = 15;
- var a, b, cnt: array[1..n] of integer;
- i, j, k: integer;
- begin
- randomize;
- {формирование и вывод исходного массива}
- writeln('Исходный массив:');
- for i := 1 to n do
- begin
- a[i] := -99 + random(199);
- write(a[i]:4)
- end;
- writeln;
- {инициализация массива счётчиков}
- for i := 1 to n do cnt[i] := 1;
- {формирование массива счётчиков}
- for i := 1 to n - 1 do
- begin
- k := 0; {количество меньших элементов для i-го элемента}
- for j := i + 1 to n do
- if a[i] < a[j]
- then cnt[j] := cnt[j] + 1
- else k := k + 1; {в счётчики больших элементов добавляем единицы}
- cnt[i] := cnt[i] + k
- end;
- {перезаписываем массив в соответствии со значениями массива счётчиков}
- for i := 1 to n do b[cnt[i]] := a[i];
- {выводим отсортированный массив}
- writeln('Отсортированный массив:');
- for i := 1 to n do write(b[i]:4);
- readln
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д