Студопедия Главная Случайная страница Обратная связь

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

Сортировка фон Неймана (слиянием)





Заданы два упорядоченных по возрастанию элементов одномерных массива: а размерности n и b размерности m. Требуется получить третий массив с размерности n+m, который содержал бы все элементы исходных массивов, упорядоченных по возрастанию.

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

Программа, реализующая метод Фон-Неймана, имеет следующий вид:

БЛОК – СХЕМА

I = 1 J = 1 K = 1


Æ 1

 

1 Æ

1 Æ

1 Æ

           
     


 

[(K)=A(I)] I = I+1 K = K+1
[(K)=B(J)] J = J+1 K = K+1
K=N+M+1

       
   


[(K)=B(J)] J = J+1 K = K+1

[(K)=A(I)] I = I+1 K = K+1

 

 

rem confluence

const n = 10

const m = 20

const l = n + m

dim x%(1 to n)

dim y%(1 to m)

dim z%(1 to l)

defint k, i, j

for i = 1 to n

input x(i) ‘формирование первого упорядоченного массива

next

for i = 1 to m

input y(i) ‘формирование второго упорядоченного массива

next

I= 1: j=1: l=1 ‘i-индекс первого массива, j-индекс второго массива, l-индекс ‘результирующего массива

while (i<=n) and (j<=m) ‘пока не закончились элементы в одном из массивов

if x(i) < y(i) then ‘переписываем элементы из первого массивa

z(k) = x(i)

i = i + 1: k = k + 1

else ‘переписываем элемент из второго массива

z(k) = y(j)

j = j + 1: k = k + 1

wend

while i < = n ‘если не закончились элементы в первом массиве,

‘переписываем их в результирующий массив

Z(k) = x(i): i = i + 1: k = k+1

wend

while j < = m ‘если не закончились элементы во втором массиве

‘переписываем их в результирующий массив

Z(k) = y(j): j = j + 1: k = k+ 1

wend

for i = 1 to l ‘вывод на экран упорядоченного массива,

print z(i):: next ‘полученного слиянием

Результаты работы:

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9

 







Дата добавления: 2015-09-07; просмотров: 842. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

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

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Studopedia.info - Студопедия - 2014-2026 год . (0.008 сек.) русская версия | украинская версия