Сортировка методом слияний Рекурсивная сортировка методом слияний.

Презентация:



Advertisements
Похожие презентации
Двумерные массивы. Массивы, положение элементов в которых описывается двумя индексами, называются двумерными. Их можно представить в виде прямоугольной.
Advertisements

const n=10; var a:array[1..n] of integer; i,j,c,b,k:integer; begin randomize; for i:=1 to n do begin a[i]:=random(11)-5;write(a[i]:5) end;writeln;
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за итоговый тест.
Методы сортировки массива. Сортировкой или упорядочением массива называется расположение его элементов по возрастанию (или убыванию). Если не все элементы.
Тема: « Вставка- удаление элементов массива » :18:06.
Одномерные массивы Решение задач. Табличный способ организации данных Одномерные и двумерные массивы.
Перестановка элементов двумерного массива. Поменять местами столбцы с номерами m1 и m2 Эту задачу можно реализовать несколькими способами. Составим две.
K-периодичный массив. В данной задаче речь пойдет только о массивах, все элементы которых равны 1 и/или 2. Массив a называется k-периодичным, если его.
Алгоритмизация и программирование. Практическая работа в Pascal Задача 1.
5.Дана матрица А и вектор Х соответствующих размерностей. Нечетные строки матрицы заменить элементами вектора Х. Результаты работы: n=4 m=
Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце.
Двумерные массивы Решение задач из сборника «Задачи по программированию» под редакцией С. Окулова.
Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
Двумерные массивы. Массивы, положение элементов в которых описывается двумя индексами, называются двумерными. Их можно представить в виде прямоугольной.
Тема: «Понятие квадратная матрица» :17:47.
Двумерные массивы Обработка относительно диагоналей.
Двумерный массив. Матрица Прямоугольная таблица, состоящая из чисел А=
Сортировка методом простого обмена (метод пузырька) Рекурсивная сортировка.
Транксрипт:

Сортировка методом слияний Рекурсивная сортировка методом слияний

Сортировка методом слияний Определение. Целочисленный массив с расположенными по неубыванию или по невозрастанию значениями элементов называется упорядоченным. Использование упорядоченности позволяет создавать эффективные алгоритмы для решения многих интересных задач. Пример: Задача слияния двух входных упорядоченных массивов А и В состоит в формировании упорядоченного выходного массива С, содержащего все элементы из входных массивов.

Алгоритм слияния двух неубывающих массивов Вначале элемент А[1] сравнивается с элементом В[1] и наименьший из них записывается в массив С. Если наименьшим был А[1], то на следующем шаге сравниваются А[2] и B[1], а если наименьшим был B[1], то будут сравниваться A[1] и B[2] и т.д. Если на очередном шаге окажется, что из одного входного массива все элементы переписаны в С, то переписывается элемент из другого массива.

Работа алгоритма для A=[5,13,14] B=[7,9,10,12]

Фрагмент программы... i1 := 1; i2 := 1; For i := 1 to n1+n2 do If i1>n1 then Begin C[i] := B[i2]; i2 := i2+1; End else If i2>n2 then Begin C[i] := A[i1]; i1 := i1+1; End else If A[i1]<=B[i2] then Begin C[i] := A[i1]; i1 := i1+1; End else Begin C[i] := B[i2]; i2 := i2+1; End;...

Рекурсивная сортировка слиянием Разберём механизм работы данного метода на конкретном примере: Задача. Напишите программу, содержащую алгоритм слияния в процедуре Sort(A, B, b1, e1, e2). Алгоритм должен копировать со слиянием два упорядоченные куска из массива А с номерами от b1 до e1 и от e1+1 до e2 соответственно в массив В с номерами элементов от b1 до e2. Данную процедуру составьте самостоятельно.

Составим алгоритм сортировки если длина сортируемого массива 1, то ничего не делается; в противном случае массив делится на две одинаковые (или почти одинаковые) части, к каждой части применяется алгоритм сортировки, после чего эти упорядоченные части сливаются в один упорядоченный кусок. На вход процедуры сортировки поступает неупорядоченный кусок массива А с номерами элементов от b до e, на выходе - тот же кусок, но упорядоченный.

Исходный код процедуры Procedure Sort2(Var A, C : Array1; b, e : integer); Var i, d : integer; BEGIN If b<e then Begin d := (b+e) div 2; Sort2(A, C, b, d); Sort2(A, C, d+1, e); Sort(A, C, b, d, e); For i := b to e do A[i] := C[i] End; END;

Решение задач Дан двумерный массив вещественных чисел размерностью [1..N,1..N]. Произвести сортировку столбцов по убыванию элементов последней строки. Вычислить сумму элементов расположенных на диагоналях полученной матрицы. Вывести на экран исходный и полученный массивы в виде матрицы. Дан двумерный массив вещественных чисел размерностью [1..N,1..N]. Произвести сортировку столбцов по возрастанию элементов первой строки. Вычислить среднее арифметическое элементов расположенных по периметру полученной матрицы. Вывести на экран исходный и полученный массивы в виде матрицы.