Быстрое слияние двух упорядоченных массивов в один с сохранением того же порядка сортировки…

Эта задача всегда возникает на третьем этапе «СОРТИРОВКИ СЛИЯНИЕМ»…

Поскольку главная функция программы работает только с упорядоченными массивами, то пришлось поместить процедуру проверяющую ввод пользователя. При вводе элемента массива нарушающего порядок «по возрастанию» запись в массив прерывается сообщением об ошибке и начинается заново.

О порядке хранения данных:

Есть два упорядоченных массива «А» и «В». Их размеры ограничены константами, а актуальный (текущий) размер указывается пользователем.

И есть результирующий массив «С» с размером равным сумме размеров «А» и «В». В него помещается результат слияния двух исходных массивов и, таким образом, получается отсортированный массив.

Вот пример: в цикле перебора в результирующий массив помещается наименьший из элементов исходных массивов, на которые в настоящий момент установлены их указатели…

/* новый массив будет отсортирован по возрастанию, если исходные массивы отсортированы. цикл заканчивается в момент окончания одного из массивов */

for(ia=0,ib=0,ic=0;(ia< k1) && (ib < k2) ;ic++)
    if(a[ia] < b[ib])
                  c[ic]=a[ia++];
    else      c[ic]=b[ib++];

//далее выполнится только один из циклов в котором счетчик не достиг конца
for(;ia < k1;ia++,ic++) c[ic]=a[ia];
for(;ib < k2;ib++,ic++) c[ic]=b[ib];


скачать exe-файл для тестирования

скачать бесплатно cpp-файл

Удачи!



ДРУГИЕ ПРИМЕРЫ:

VBA Excel
Объединение в одном алгоритме сортировки, дополняющих друг друга алгоритмов Хоара и слияния…

C# Visual Studio 2010 .NET Framework 4
Сортировка слиянием массива записей (структур)

Другие примеры на языках «C»,«C++»,«C#»




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации
требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике