Сортировка элементов первого столбца с помощью прямого обмена.Программа Паскаль

0 голосов
41 просмотров

Сортировка элементов первого столбца с помощью прямого обмена.Программа Паскаль


Информатика (475 баллов) | 41 просмотров
0

Что-то мне говорит, что у Вас неточное условие. Если речь о столбце, значит это двумерый массив. В нем можно действительно отсортировать только один столбец, а можно отсортировать весь массив переставляя строки так, чтобы указанный столбец оказался упорядоченным. Это совсем разные и по объему и по сложности задачи

0

думаю только один столбец надо и всё

0

да,1 столбец

Дан 1 ответ
0 голосов
Правильный ответ

Const
  m1 = 10;
  n1 = 8;
var
  x: array[1..m1, 1..n1] of integer;
  i, j, m, n, t: integer;
begin
  Write('Введите через пробел число строк и столбцов матрицы: ');
  Read(m,n);
  Randomize;
  Writeln('Исходная матрица');
  for i:= 1 to m do begin
    for j:=1 to n do begin
      x[i,j]:= Random(50)+1;
      Write(x[i,j]:3)
    end;
    Writeln
  end;
  { простая обменная сортировка первого столбца }
  for i:=1 to m-1 do
    for j:=1 to m-1 do
      if x[j,1]>x[j+1,1] then
      begin t:=x[j,1]; x[j,1]:=x[j+1,1]; x[j+1,1]:=t end;
  Writeln('Результирующая матрица');
  for i:= 1 to m do begin
    for j:=1 to n do Write(x[i,j]:3);
    Writeln
  end
end.

Тестовое решение:
Введите через пробел число строк и столбцов матрицы: 10 8
Исходная матрица
 44 28 35 45 28 21 24 31
 39 10  1 27 33  3  7 39
 22  8 45  4 33 11 23 37
 18 50 48 12 45 28  1 32
  3 25 45 11 40 49 47 17
 28 16 46 43 11 13 22 18
 27 24 45 33 44 44 34 34
  6 49 27 28 24 13 37 12
  9 19 25  8  8 47 49 24
 11 29 26 18 16 30 27  6
Результирующая матрица
  3 28 35 45 28 21 24 31
  6 10  1 27 33  3  7 39
  9  8 45  4 33 11 23 37
 11 50 48 12 45 28  1 32
 18 25 45 11 40 49 47 17
 22 16 46 43 11 13 22 18
 27 24 45 33 44 44 34 34
 28 49 27 28 24 13 37 12
 39 19 25  8  8 47 49 24
 44 29 26 18 16 30 27  6

(142k баллов)