Patrice T
Цитата:
Как я могу улучшить его или вы можете предложить какой-либо лучший/более быстрый алгоритм.
Покажите вызывающий код с образцами данных, чтобы у нас было представление о том, что вы делаете с этой функцией.
Советовать:
- Двойной интервал между строками ничего не добавляет к вашему коду, он просто затрудняет его чтение.
- Научитесь правильно делать отступы в вашем коде, это покажет его структуру, и это поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.
static int size=0,source=0;
int ans=0;
void moddfs(int** edges,int N,int s,int visited[])
{
visited[s]=1;
if(size<3)
{
for(int i=0;i<N;i++)
{
if(size==0)
{
source=s;
}
if(!visited[i] && edges[s][i])
{
size++;
moddfs(edges,N,i,visited);
}
}
}
else{
if(edges[source][s])
{
ans++;
}
}
visited[s]=0;
size--;
}
Стиль отступа - Википедия[
^]
Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[
^]
личные[
^]
[Обновление]
Цитата:
Как я могу улучшить его или вы можете предложить какой-либо лучший/более быстрый алгоритм.
Конечно, я могу дать вам прямое решение, но для вас это будет волшебство, вы ничего не узнаете из него.
Совершенствование алгоритма-это оптимизация.
Есть в основном 2 аспекта:
- Оптимизация кода: когда код неэффективен из-за быстрого и грязного написания. Вы можете использовать профилирование для определения горлышек бутылок.
Профилирование (компьютерное программирование) - Википедия[
^]
- Оптимизация алгоритма: именно здесь вы можете получить большой выигрыш. Это означает глубокое понимание проблемы и используемого алгоритма. Циклы 1234, 2341, 3412, 4123, 4321, 3214, 2143 и 1432-это все тот же цикл, вы должны установить правила, чтобы сохранить только 1 из них.
Вы должны посмотреть, могут ли другие правила сделать трюк и быть более эффективными.
Пример: скажем, что первый узел в цикле-это минимальное число узлов в цикле, это приведет к улучшению, потому что вам не нужно пробовать возможные связи с более низким числом узлов через цикл.
Является ли рекурсия лучшим способом получить ответы ?
...