الگوریتم کراسکال: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Azita araghi (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
Azita araghi (بحث | مشارکت‌ها)
برچسب: افزودن فضای خالی زیاد(AF)
خط ۶۵:
 
که این با <math>T</math> انتخاب در تناقض است. بنابرین <math>T=U</math> و در نتیجه<math> U</math> یک درخت بهینه‌است.
 
==شبه کد الگوریتم کروسکال==
{{چپچین}}
Void kruskal ( int n , int m ,
 
مسئله:یک درخت پوشای می نیمم مشخص کنید.
set _of_edges E,
 
ورودی:عدد صحیح n>=2 , عدد صحیح مثبت m و یک گراف بدون جهت و وزن دار و متصل شامل n گره و m لبه . گراف با یک مجموعه E که شامل لبه های گراف همراه با وزن های انها است نشان داده می شود
set_of_edges & F)
 
{
 
index i, j;
 
Set_pointer p , q ;
 
edge e;
 
Sort the m edges in E by weight in nondecreasing order ;
 
F=∅;
 
initial(n);
 
While(number of edges in F is less than n-1){
 
e= edge with least weight not yet considered;
 
i, j = indices of vertices connected by e ;
 
p=find(i);
 
q=find(j);
 
if(!equal(p,q)){
 
merge(p,q);
 
add e to F ;
 
}}}
 
خروجی:مجموعه ای از لبه ها F در یک درخت پوشا مینیمم
 
{{چپچین}}
<pre>
* Void kruskal ( int n , int m ,
* set _of_edges E,
* set_of_edges & F)
* {
* index i, j;
* Set_pointer p , q ;
* edge e;
* Sort the m edges in E by weight in nondecreasing order ;
* F=∅;
* initial(n); //زیر مجموعه غیر الحاقی n مقدار دهی
* While(number of edges in F is less than n-1){
* e= edge with least weight not yet considered;
* i, j = indices of vertices connected by e ;
* p=find(i);
* q=find(j);
* if(!equal(p,q)){
* merge(p,q);
* add e to F ;
* }
* }
* }
 
== منابع ==