Re: 4-х массив
От: ILva_ Россия  
Дата: 09.03.07 10:36
Оценка:
Здравствуйте, Piero2, Вы писали:

P>Делается полный перебор по 4-х мерному массиву — выполняется очень долго, а нужно быстрее


P> // Начинаем перебор

P> for(i1=0;i1<=2*CellsNum;i1++)
P> {tx = i1;
P> for(i2=0;i2<=2*CellsNum;i2++)
P> {ty = i2;
P> for(i3=-Vg;i3<=Vg;i3++)
P> {x = tx + i3*kof;
P> for(i4=-Vg;i4<=Vg;i4++)
P> {y = ty + i4*kof;
P> Q1[i1][i2][i3+Vg][i4+Vg].dh += cl[x][y].h;

P> if (Q1[i1][i2][i3][i4].dh<MinH)

P> { // Сохраняем лучший вариант
P> MinH = Q1[i1][i2][i3+Vg][i4+Vg].dh;
P> r.x = i1;
P> r.y = i2;
P> r1.x = i3+Vg;
P> r1.y = i4+Vg;
P> }
P> } // for i4
P> } //for i3
P> } // for i2
P> } //for i1

P>аналогичная прога на паскале работает намного быстрее, но исходников нет (((


P>дайте пару советов по оптимизации такого кода


Первое что бросилось в глаза — перемножение в цикле 2*CellsNum. Вычисли это произведение до циклов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.