Необходимо написать программу, которая что то делает, допустим считает при помощи вложенных циклов и оптимизировать ее, так чтоб при добавлении счетчика времени работы программы была заметна оптимизация встроенных циклов.
Цель данной задачи — научиться оптимизировать код программ так, чтобы они выполнялись за более короткий период времени, при этом программа должна решать поставленную задачу в полном объеме.
К сожалению, решения данной задачи пока нет. Если Вы решили эту задачу, сообщите нам, и мы выложим её на сайте.
E-mail : admin@cppstudio.com
Комментарии
Lee Amstrong
g++ -O3 mycode.cpp
Оптимизировал, проверяй.
Oleg Sam
К примеру есть функция
void buble_sort( int *mas, int sz )
{
for( int i = 1; i < sz; ++i )
for( int j = sz — 1; j >= i; —j )
{
if( mas[ j — 1 ] > mas[ j ] )
{
int tmp = mas[ j — 1 ];
mas[ j — 1 ] = mas[ j ];
mas[ j ] = tmp;
}
}
}
//вот оптимизация без изменения алгоритма
//цель убрать повторное вычесления индекса для массива
void buble_sort2( int *mas, int sz )
{
int *p1, *p2, *p3;
int *end = mas + sz;
for( p1 = mas + 1; p1 < end; ++p1 )
for( p2 = end — 1, p3 = p2 — 1; p2 >= p1; —p2, —p3 )
{
if( *p3 > *p2 )
{
int tmp = *p3;
*p3 = *p2;
*p2 = tmp;
}
}
}
Denis Makarov
простите, что надо то? inline к функции, вызываемой 1000 раз, подписать?