
54<br>1 6 3 0<br>4نام فایل : روش تقسيم و حل Divide and Conqure
فرمت : .ppt
تعداد صفحه/اسلاید : 37
حجم : 252 کیلوبایت
روش تقسيم و حل Divide and Conqure
روش تقسيم و حل Divide and Conqure
يک نمونه از مسأله را به دو يا چند قسمت کوچکتر تقسيم ميکند که معمولا نمونه هايی از مسأله اصلی هستند. اگر جواب مسأله های کوچکتر به راحتی محاسبه شود, می توان جواب نمونه اصلی را با ترکيب اين جوابها به دست آورد, در غير اين صورت ميتوان آنها را به نمونه های کوچکتر تقسيم کرد .
يک روش بالا به پايين است.
Algorithm DAndC(P)
{ if Small(P) return Solve(P);
else
{ divide P into smaller instances P1,P2,…,Pk, k>=1;
Apply DAndC to each of these subproblems;
return Combine(DAndC(P1),DAndC(P2),…,DAndC(Pk);
}
}
زمان محاسبه تابع DAndC
T(n)= g(n) کوچک باشد n
T(n1)+ T(n2)+…+ T(nk)+f(n) درغيراينصورت
g(n): زمان لازم برای محاسبه مستقيم پاسخ برای ورودی های کوچک
: f(n) زمان لازم برای تقسيم مسأله و ترکيب راه حلها
معمولا:
T(n)= T(1) n=1
aT(n/b)+f(n) n>1
جستجوی دودويی
مسأله: تعيين اين که آيا x در آرايه مرتب s با اندازه n وجود دارد يا خير.
مثال:n=14
-15,-6,0,7,9,23,54,82,101,112,125,131,142,151
x=9
low high mid s[mid]
1 14 7
برچسب های مهم