|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2011, 23:42 | #1 |
Регистрация: 21.12.2011
Сообщений: 5
|
Как Быстро Обработать Массив?
как максимально быстро обработать (двухмерный)массив данных если: с каждым элементом надо провести ряд одинаковых математических операций или если каждый элемент надо преобразовать в новый тип данных по определенному алгоритму и получить новую шматрицу? :О
|
22.12.2011, 23:49 | #2 |
Новичок
Джуниор
Регистрация: 22.12.2011
Сообщений: 2
|
быстрее,чем
for(...) { for(...) {} } вред ли получится |
23.12.2011, 00:21 | #3 |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 395
|
Код:
Последний раз редактировалось zotox; 23.12.2011 в 00:41. |
23.12.2011, 01:03 | #4 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Вообще-то, оптимизация - это серьёзное занятие... Весьма познавательно - как росли результаты для простейшей, вроде бы, задачи (и, главное, какими методами этот рост достигался), да и просто разница между первым и восьмым местом эффектно выглядит...
|
23.12.2011, 22:13 | #5 |
Регистрация: 21.12.2011
Сообщений: 5
|
понятно а то что с каждым элементом надо провести одинаковые процедуры (ну скажем каждый элемент умножить разделить и сложить с какой нибудь константой (переменной)) не может как то упростить стандартным способом задачу?
ну например не перебирая каждый элемент а как то разом применить ко всем элементам (ну а перебор чтобы автоматически на более низком уровне чем с++ происходил)? :О |
23.12.2011, 22:17 | #6 |
Регистрация: 21.12.2011
Сообщений: 5
|
вообще это мне надо для заполнения матрицы для отображения на экране - входная матрица - двухбайтные числа, выходная - цвета точек :О
|
23.12.2011, 23:05 | #7 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
В беззнаковом варианте: От 0 до 65 535 значений. О чем это говорит? Это говорит о том, что какие бы элементы в твоём массиве не лежали, их значения находятся в рамках этого диапазона (если они без знаковые) Можно составить таблицу готовых расчетов: 0 ---- результат0 .... 65535 ---- результат65535 И вместо того, что бы выполнять громозкие вычисления над каждым элементом массива, использовать значение этого элемента в качестве индекса таблицы, и получать готовый результат почти моментально. Хотя конечно... памяти сожрёт... ------------------------------------ Нет, это тупой вариант. Вариант лучше: Прогоняешь массив данных через утилиту, которая на выходе даёт массив с уже готовыми расчетами. А боевая программа уже работает с готовыми расчетами, а не сырыми данными. Последний раз редактировалось _Bers; 23.12.2011 в 23:14. |
|
24.12.2011, 01:10 | #8 | |
Регистрация: 21.12.2011
Сообщений: 5
|
Цитата:
и кстати значений можно 4096 использовать в моей задаче, да и 65к не критично памяти съест, спасибо попробую! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как обработать не выбранный ListBox | sergey113 | Помощь студентам | 1 | 26.05.2011 12:40 |
Две лабы: файл - обработать слова; массив - найти три наибольших элемента за один проход ( Delphi ) | Emma_Imp | Помощь студентам | 5 | 26.12.2010 21:13 |
Помогите с решением, нужно обработать массив | stare1983 | Microsoft Office Excel | 2 | 25.02.2009 21:06 |
Как обработать ошибку | XAOC-forever | Работа с сетью в Delphi | 11 | 24.09.2008 20:13 |
Как обработать исключение? | XPAiN | БД в Delphi | 9 | 16.05.2008 15:09 |