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

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

Восстановить пароль Регистрация
 
paserge
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42
01.02.2013, 01:24     Оптимизация обработки массивов #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++ обработки массивов
C++ Написать программу для обработки массивов
C++ Программирование алгоритмов обработки двумерных массивов
C++ Не получается написать программу обработки массивов
Программирование типовых числовых задач обработки одномерных массивов C++
Использование процедур для обработки массивов C++
C++ Определение и использование шаблонов функций для обработки массивов
Функции для обработки массивов C++
C++ Функции для обработки массивов
Программирование обработки многомерных массивов C++
C++ Алгоритмы сортировки и обработки двумерных массивов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5553 / 3032 / 340
Регистрация: 29.11.2010
Сообщений: 8,197
01.02.2013, 01:30     Оптимизация обработки массивов #2
Цитата Сообщение от paserge Посмотреть сообщение
Как оптимизировать данный алгоритм так как действия в нем повторяются?
все повторы необходимо вынести в отдельную функцию, так хоть нагляднее будет видно, что где сократить.

Не по теме:

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

Yandex
Объявления
01.02.2013, 01:30     Оптимизация обработки массивов
Ответ Создать тему
Опции темы

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