-
جمعه 06 آبان 1390, 19:20 عصر
#3
کاربر جدید
نقل قول: پیشنهاد الگوریتم بهینه تر و سریعتر برای درخت پوشای مینیمال
الگوریتم پرایم فکر کنم ازساده ترین الگوریتم ها برای درخت پوشای مینیمال باشه
اما ما با کروسکال باید پیاده سازی کنیم
حالا از بچه ها اگه کسی لطف کنه اینو واسه ما توضیح بده ممنون میشم . ینی اینکه متغییرهای که تعریف شده هر کدوم چی هستند چی کار میکنند ارایه ها چی هستند چی کار میکنن در واقع خط به خط نکته به نکته ممنون
پیاده سازی الگوریتم کروسکال به زبان سی
#include<stdio.h>
#include<conio.h>
void sort (int X[][3])
{
int i,j,k,r;
float m;
for(j=0;j<10;j++)
for(i=0;i<8;i++)
if(X[i][2]>X[i+1][2])
{
for(k=i;k<8;k++)
for(r=0;r<3;r++)
{
if(k==7)
continue;
else
{
m=X[k][r];
X[k][r]=X[k+1][r];
X[k+1][r]=m;
}
}
}
}
void main()
{
int M[8][3]={{0,1,10},{0,2,5},{0,4,40},{1,2,15},{1,3,25},{2,3 ,30},{2,4,20},{3,4,5}};
int N[4][2]={{-1,-1},{-1,-1},{-1,-1},{-1,-1}};
int S[5]={0,1,2,3,4};
int i,j,sum=0,p,q;
printf("+++++++++++++++++\n");
printf("* is prototype *\n");
printf("+++++++++++++++++\n\n");
printf("first point start from node \'0\'\n\n");
printf("relating betwin node:\n");
for(i=0;i<8;i++)
{
for(j=0;j<3;j++)
printf(" %d",M[i][j]);
printf("\n");
}
sort(M);
printf("===================================\n");
printf("if you ready type \'y\'\n");
getch();
printf("===================================\n");
printf("\nsort by longest:\n");
for(i=0;i<8;i++)
{
for(j=0;j<3;j++)
printf(" %d",M[i][j]);
printf("\n");
}
for(i=0;i<4;i++)
{
p=M[i][0];
q=M[i][1];
if(S[p]!=S[q])
{
N[i][0]=p;
N[i][1]=q;
}
sum+=M[i][2];
for(j=0;j<8;j++)
if(S[j]==S[q])
S[j]=S[p];
}
printf("\n n: point of start line & m: end of line\n");
printf("\nn\tm\n");
printf("________________\n");
for(i=0;i<4;i++)
{
printf("%d\t%d",N[i][0],N[i][1]);
printf("\n");
}
printf("\nsumation of yals: %d",sum);
printf("\n\n");
}
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت