Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVYeT.doc
Скачиваний:
27
Добавлен:
20.04.2019
Размер:
1.17 Mб
Скачать

2 Способ. Сортировка методом пузырька.

Один из самых популярных методов сортировки – «пузырьковый» метод - основан на том, что в процессе исполнения алгоритма более «легкие» элементы массива постепенно «всплывают». Особенностью данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Алгоритм пузырьковой сортировки по возрастанию состоит в последовательном просмотре от начала к концу массива Х. Если для соседних элементов выполняется условие, согласно которому элемент находящийся справа, меньше элемента, находящегося слева, то выполняется обмен значениями этих элементов.

Текст программы:

Program poriadok;

Type t=array [1..50] of real;

Var x: t;

i, n, k: integer; c: real;

Begin

writeln (‘Введите количество элементов массива’);

readln ( n );

for i:=1 to n do begin

writeln (‘Введите ‘, i ,’элемент массива X’);

readln (x [ i ]); end;

for i:=2 to n do

for k:=N downto I do

if x[k-1]>x[k] then begin

c:=x[k-1];

x[k-1]:=x[k];

x[k]:=c;

end;

writeln (‘Вывод нового массива’);

for i:=1 to n do begin

write (x [ i ]:8:2); end;

readln

End.

3 Способ. Метод быстрой сортировки с разделением.

Оба рассмотренных выше метода достаточно просты и наглядны, но не очень эффективны. Значительно быстрее работает алгоритм сортировки с разделением (или быстрой сортировки). В основу алгоритма положен метод последовательного деления массива на части.

63. Двумерные массивы. Ввод и вывод элементов матрицы

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

1 способ.

TYPE t=array [ 1..50, 1..50 ] of integer;

VAR

Matrica : t ;

2 способ.

VAR

Matrica : array [ 1..50, 1..50 ] of integer;

Описан двумерный массив с именем Matrica, который состоит не более чем из 50 строк и столбцов.

В матрицах самый правый индекс возрастает первым. Например: дана матрица, следующего вида:

A11 A12 A13 … A1m

A21 A22 A23 … A2m

………………………….

An1 An2 An3Anm

Из примера видно, что порядок расположения каждого элемента матрицы А (имя двумерного массива) определяет два индекса (положение строки и столбца). Первый индекс ( I ) характеризует положение строки, второй индекс ( J ) – положение столбца. Тогда справедливо отметить, что I изменяется от 1 до N с шагом изменения равным 1, а J изменяется от 1 до M с шагом изменения равным 1. Т.О. данную матрицу можно записать на Паскале:

1 способ:

TYPE T = array [ 1..50 , 1..50 ] of integer;

VAR

A : T ;

I, J, N, M : integer;

2 способ:

VAR

A : array [ 1..50 , 1..50 ] of integer;

I, J, N, M : integer;

Ввод и вывод элементов матрицы могут быть организованы с помощью вложенных циклов с параметром.

  1. Ввод элементов матрицы.

(Рассмотрим тот же пример.)

For i:=1 to n do

For j:=1 to m do

begin

Writeln (‘Введите ‘, i, j,’элемент матрицы’);

Readln a[ i, j];

end;

Блок-схема ввода элементов матрицы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]