Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
paserge
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42
#1

Оптимизация обработки массивов - C++

01.02.2013, 01:24. Просмотров 330. Ответов 1
Метки нет (Все метки)

Есть 12 числовых массивов (a,b,d,e,f,g,h,k,m,n,p,r) разной длины, их длина кратна 5 и заранее известна.
Необходимо создать массив (abdefghkmnpr) состоящий из перебора этих массивов.
Алгоритм программы такой:
Кликните здесь для просмотра всего текста
1 объявляем новый массив(ab)
2 сравниваем два первых массива(a и b)
сравнение происходит так:
берем 5 элементов массива (b) и по одному сравниваем с 5 элементами массива (a)
если в проверке нет ни одного совпадения то заносим эти 10 элементов в объявленный массив (ab)
далее берем следующие 5 элементов массива (a) и повторяем сравнение.
когда закончится массив (a) то берем вторую пятерку из массива (b) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (b).

3 объявляем новый массив (abd)
4 сравниваем массив (d) с массивом (ab)
сравнение происходит так:
берем 5 элементов массива (d) и по одному сравниваем с 10 элементами массива (ab)
если в проверке нет ни одного совпадения то заносим эти 15 элементов в объявленный массив (abd)
далее берем следующие 10 элементов массива (ab) и повторяем сравнение.
когда закончится массив(ab) то берем вторую пятерку из массива (d) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (d).

5 объявляем новый массив (abde)
6 сравниваем массив (e) с массивом (abd)
сравнение происходит так:
берем 5 элементов массива (e) и по одному сравниваем с 15 элементами массива (abd)
если в проверке нет ни одного совпадения то заносим эти 20 элементов в объявленный массив (abde)
далее берем следующие 15 элементов массива (abd) и повторяем сравнение.
когда закончится массив(abd) то берем вторую пятерку из массива (e) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (e).

7 объявляем новый массив (abdef)
8 сравниваем массив (f) с массивом (abde)
сравнение происходит так:
берем 5 элементов массива (f) и по одному сравниваем с 20 элементами массива (abde)
если в проверке нет ни одного совпадения то заносим эти 25 элементов в объявленный массив (abdef)
далее берем следующие 20 элементов массива (abde) и повторяем сравнение.
когда закончится массив(abde) то берем вторую пятерку из массива (f) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (f).

9 объявляем новый массив (abdefg)
10 сравниваем массив (g) с массивом (abdef)
сравнение происходит так:
берем 5 элементов массива (g) и по одному сравниваем с 25 элементами массива (abdef)
если в проверке нет ни одного совпадения то заносим эти 30 элементов в объявленный массив (abdefg)
далее берем следующие 25 элементов массива (abdef) и повторяем сравнение.
когда закончится массив(abdef) то берем вторую пятерку из массива (g) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (g).

11 объявляем новый массив (abdefgh)
12 сравниваем массив (h) с массивом (abdefg)
сравнение происходит так:
берем 5 элементов массива (h) и по одному сравниваем с 30 элементами массива (abdefg)
если в проверке нет ни одного совпадения то заносим эти 35 элементов в объявленный массив (abdefgh)
далее берем следующие 30 элементов массива (abdefg) и повторяем сравнение.
когда закончится массив(abdefg) то берем вторую пятерку из массива (h) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (h).

13 объявляем новый массив (abdefghk)
14 сравниваем массив (k) с массивом (abdefgh)
сравнение происходит так:
берем 5 элементов массива (k) и по одному сравниваем с 35 элементами массива (abdefgh)
если в проверке нет ни одного совпадения то заносим эти 40 элементов в объявленный массив (abdefghk)
далее берем следующие 35 элементов массива (abdefgh) и повторяем сравнение.
когда закончится массив(abdefgh) то берем вторую пятерку из массива (k) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (k).

15 объявляем новый массив (abdefghkm)
16 сравниваем массив (m) с массивом (abdefghk)
сравнение происходит так:
берем 5 элементов массива (m) и по одному сравниваем с 40 элементами массива (abdefghk)
если в проверке нет ни одного совпадения то заносим эти 45 элементов в объявленный массив (abdefghkm)
далее берем следующие 40 элементов массива (abdefghk) и повторяем сравнение.
когда закончится массив(abdefghk) то берем вторую пятерку из массива (m) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (m).

17 объявляем новый массив (abdefghkmn)
18 сравниваем массив (n) с массивом (abdefghkm)
сравнение происходит так:
берем 5 элементов массива (n) и по одному сравниваем с 45 элементами массива (abdefghkm)
если в проверке нет ни одного совпадения то заносим эти 50 элементов в объявленный массив (abdefghkmn)
далее берем следующие 45 элементов массива (abdefghkm) и повторяем сравнение.
когда закончится массив(abdefghkm) то берем вторую пятерку из массива (n) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (n).

19 объявляем новый массив (abdefghkmnp)
20 сравниваем массив (p) с массивом (abdefghkmn)
сравнение происходит так:
берем 5 элементов массива (p) и по одному сравниваем с 50 элементами массива (abdefghkmn)
если в проверке нет ни одного совпадения то заносим эти 55 элементов в объявленный массив (abdefghkmnp)
далее берем следующие 50 элементов массива (abdefghkmn) и повторяем сравнение.
когда закончится массив(abdefghkmn) то берем вторую пятерку из массива (p) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (p).

21 объявляем новый массив (abdefghkmnpr)
22 сравниваем массив (r) с массивом (abdefghkmnp)
сравнение происходит так:
берем 5 элементов массива (r) и по одному сравниваем с 55 элементами массива (abdefghkmnp)
если в проверке нет ни одного совпадения то заносим эти 60 элементов в объявленный массив (abdefghkmnpr)
далее берем следующие 55 элементов массива (abdefghkmnp) и повторяем сравнение.
когда закончится массив(abdefghkmnp) то берем вторую пятерку из массива (r) и проделываем те же действия.
продолжаем до тех пор пока не закончатся элементы в массиве (r).


Как оптимизировать данный алгоритм так как действия в нем повторяются?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 01:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оптимизация обработки массивов (C++):

обработки массивов - C++
1)Составить программу для подсчета суммы четным элементов двумерной таблицы А размером m × n. Сформировать матрицу с помощью генератора...

обработки массивов ляньте - C++
1)Составить программу, которая вычисляет произведение максимального и минимального значений элементов одномерного массива Х, состоящая из...

Программирование обработки многомерных массивов - C++
Дана целочисленная прямоугольная матрица. Определить: количество строк, содержащих хотя бы один нулевой элемент; номер столбца в котором...

Функции для обработки массивов - C++
Разработать программу на С++ используя функции форматированного ввода-вывода языка Си . Исходные данные программы должны находится в...

Функции для обработки массивов - C++
Добрый день! Помогите пожалуйста с программой. Есть две функции. В первой функции считывается массив из файла. Затем этот массив...

Функции для обработки одномерных массивов - C++
С. Прата, задача 7.6, Посмотрите, пожалуйста, насколько дубово (для текущего уровня) я решил задачу. Стыдно сказать, всё утро ковырялся...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
01.02.2013, 01:30 #2
Цитата Сообщение от paserge Посмотреть сообщение
Как оптимизировать данный алгоритм так как действия в нем повторяются?
все повторы необходимо вынести в отдельную функцию, так хоть нагляднее будет видно, что где сократить.

Не по теме:

прям сочинение, даешь код и, как в рекламе, вместо 1000 слов...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2013, 01:30
Привет! Вот еще темы с ответами:

Написать программу для обработки массивов - C++
Написать программу для обработки массивов. Все массивы создаются путем динамического выделения памяти. Доступ к их элементов производится с...

Алгоритмы сортировки и обработки двумерных массивов - C++
Пожалуйста помогите! я не понимаю C++ вообще. Очень нужна помощь! Задана матрица размером N×M, N,M<50. Определить k – количество...

Использование процедур для обработки массивов - C++
Составить процедуру подсчета количества элементов одномерного массива А, значения которых лежат в пределах от p до q. С помощью этой...

Не получается написать программу обработки массивов - C++
Доброго времени суток! Помогите пожалуйста составить програму по заданию: Дан массив, состоящий из n натуральных чисел. Образовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru