Алгоритм сортировки элементов одномерного массива(пример)

Один из наиболее распространенных процессов обработки данных —сортировка массива.

Сортировка — это размещение объектов в определенномпорядке. Числа могут размещаться по убыванию или по возрастанию.Известно несколько алгоритмов сортировки.Рассмотрим только

один из них— метод сортировки обменом.Итак, рассмотрим задачу о размещении чисел из таблицы:50 | 40 | 10 | 20 |…| 30 | 7 |в порядке неубывания.Сортировку обменом называют еще методом пузырька. Суть метода состоит в том, что последовательно сравниваются пары соседних элементов массива. Если первый элемент пары оказался больше второго, то они меняются местами и на второе место (как пузырек) «всплывает» больший из двух элементов:

40 | 50 | 10 | 20 |…| 30 | 7 |

Затем выбирается пара, состоящая из 2-го и 3-его элементов массива,сравнение и перестановка повторяются, и на 3-е место всплывает больший элемент из трех. Сравнение с перестановкой повторяются, пока не будет достигнут конец массива, в результате чего caмый большой элемент массива «всплывает» и занимает крайнее правое место:

40 | 10 | 20 | 30 |…| 7 | 50 |19

Такой проход от начала кконцу массива составляет один шагпроцесса сортировки. В результате

вьполнения прохода самый большой элемент оказался самым правым элементом массива.

Следующим шагом алгоритмаявляется проход от первого до (n-1)-го элемента. Его результатом

будет размещение наибольшего изоставшихся элементов на предпо-следнем месте и т. д.До сих пор речь шла о расположении чисел в порядке их неубывания. А как сделать, чтобы сортировка обеспечивала убываниеили не возрастание? Нужно вместо условия А [ j ] > A [j+1] записать

прямо противоположное ему условие A[j] < A[j+1].Заметим, что возможность появления двух одинаковых чисел не создает каких-либо проблем. В момент сравнения двух одинаковых элементов оба остаются на прежних местах, но затем, постепенно перемещаясь по ряду, они

займут свои окончательные положения, оставаясь в соседних позицияхю.

program sort;

const n=7;

a:array[1..n] of real=(50,40,10,20,30,5,7);

var i,j,k:integer; r:real;

begin

for i:=1 to n-1 do {на каждом шаге пузырек "плывет" от

1-ой позиции в (n-i+1)-ю позицию}

for j:=1 to n-i do

if a[j]>a[j+l] then {Сравниваются пары элементов}

begin

r:=a[j+1]; {обмен}

a[j+1]:=a[j];

a[j]:=r;

end;

{Вывод результата сортировки}

for k:=1 to n do Write(a[k]:9:4,'|'); end.

Алгоритм ввода и вывода элементов двумерного массива(пример)

Ввод двумерного массива

Program mas2;

var В : array [1 .. 3, 1..5] of Integer;

i , j : integer;

begin

for i := 1 to 3 do

for j := 1 to 5 do

begin

writeln(‘введите элемент B[’, i, ‘,’ , j, ‘]’);

readln (B[i , j ]);

end;

……

End.

Вывод двумерного массива

Program mas2;

var В : array [1 .. 3, 1..5] of Integer;

i , j : integer;

begin

for i := 1 to 3 do

for j := 1 to 5 do

begin

writeln(‘Элемент B[’, i, ‘,’ , j, ‘]=’);

read (B[i , j ]);

end;

……

End.

Алгоритм нахождения сумм значений матриц по строкам и столбцам(пример)

Алгоритм нахождения max значения в двумерном массиве(пример)

Массив – это упорядоченный набор переменных, которым присвоено одно имя. К необходимости

применения массивов мы приходим каждый раз, когда требуется связать и использовать целый ряд родственных величин. Доступ к элементам двухмерного массива осуществляется посредст-

вом двух индексов, что позволяет представить двухмерный массив в виде таблицы, в которой первый индекс определяет номер строки, а второй – номер столбца. На пересечении столбца и строки находится определенный элемент.

Данный двухмерный массив в программе описывается следующим образом

VAR A : ARRAY [1..5, 1..5] OF REAL.

Элемент, расположенный в 5-ой строке и первом столбце имеет имя A[5, 1].

Программа заполнения двухмерного массива 3 × 5 и поиска в нем наибольшего элемен-

та.

PROGRAM Maximum;

VAR i, j : Integer;

M : ARRAY [1..3, 1..5] OF Real;

max : Real;

BEGIN

FOR i:=1 TO 3 DO

FOR j:=1 TO 5 DO

BEGIN

WRITE('M[',i,',',j,']=');

READLN(M[i,j]);

END;

max:=M[1,1];

FOR i:=1 TO 3 DO

FOR j:=1 TO 5 DO

IF M[i,j]<max THEN max:=M[i,j];

WRITELN('Максимальный элемент=', max:7:4);

END.

Наши рекомендации