Делаю алгоритм Краскала. Вкратце, я отсортировал все ребра в массиве MAS, в массиве REZ у меня содержатся "цвета" (0..4), по идее, я шагаю по всем элементам MAS, если нахожу в моей матрице такую же длину ребра, как и в MAS, я сравниваю их цвета, и если цвета разные, то включаю это ребро в граф, и меняю цвета. Все должно работать, но блин уже 3 дня сижу, и все равно в некоторых ситуациях он рисует циклы, может кто подскажет?
for(k=0,t=0;k<10;k++)
{
for(i=0;i<(N-1);i++)
{
for(j=i+1;j<N;j++)
{
if(D[i][j]==MAS[k])
{
if((REZ[i]!=REZ[j])&&(t!=4))
{
ctx.moveTo(circles[i].x, circles[i].y);
ctx.lineTo(circles[j].x,circles[j].y);
t++;
for(c=0;c<N;c++)
{
if(REZ[c]==REZ[j])
{
REZ[c]=REZ[i];
}
alert(REZ[c]);
}
}
}
}
}
}