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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Cтруктура: расчет количества библиотек на 1000 жителей. http://www.cyberforum.ru/cpp-beginners/thread776581.html
Составить программу, в которой описывается структура из полей: Город, Количество жителей, Количество библиотек. Организовать ввод структурных переменных, вывод каждой структуры на экран и расчет количества библиотек на 1000 жителей. Кол-во библиотек на 1000 жителей = Количество библиотек / Количество жителей / 1000. #include <iostream> #include <cstring> #include <windows.h> #include...
C++ Реализация работы с динамическими структурами Составьте программу, которая создает стек из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух целых чисел. Организуйте обработку каждого элемента: печать целых чисел из информационной части и остатка от деления первого целого числа на второе. http://www.cyberforum.ru/cpp-beginners/thread776569.html
Структура: Очередь C++
Составьте программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух целых чисел. Организуйте обработку каждого элемента: печать целых чисел из информационной части и их среднее значение.
C++ Static поля класса
объясните нубу, вот имею я такой код на С# class WebResponse { public static string GET(string Url, string Data) { string Out = sr.ReadToEnd(); return Out; } } и я просто буду обращаться к этой функции WebResponse.GET(...);
C++ Составить программу, в которой описывается структура из полей: Фамилия, Номер телефона, Год рождения http://www.cyberforum.ru/cpp-beginners/thread776557.html
Составить программу, в которой описывается структура из полей: Фамилия, Номер телефона, Год рождения. Организовать ввод двух структурных переменных, вывод каждой структуры на экран и вывести на экран фамилию человека, номер телефона введен с клавиатуры (если такого человека нет, вывести сообщение об этом).
C++ Линейный вычислительный процесс (вычислить площадь треугольника) Написать программу, которая получает от пользователя длины двух сторон треугольника и величину угла между ними и вычисляет площадь треугольника. подробнее

Показать сообщение отдельно
paserge
-3 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 42

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

01.02.2013, 01:24. Просмотров 326. Ответов 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).


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