Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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

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

один из них— метод сортировки обменом.Итак, рассмотрим задачу о размещении чисел из таблицы: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.

 

 





Поделиться с друзьями:


Дата добавления: 2016-04-03; Мы поможем в написании ваших работ!; просмотров: 718 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2227 - | 2156 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.