-یک نمونه از مسأله را به دو یا چند قسمت کوچکتر تقسیم میکند که معمولا نمونه هایی از مسأله اصلی هستند. اگر جواب مسأله های کوچکتر به راحتی محاسبه شود, می توان جواب نمونه اصلی را با ترکیب این جوابها به دست آورد, در غیر این صورت میتوان آنها را به نمونه های کوچکتر تقسیم کرد .
-
- یک روش بالا به پایین است.
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);
nاغلب بهترین انتخاب عملی برای مرتب سازی است.(ضرایب ثابت درθ(n lg n) کوچکند)
nمرتب سازی درجا است.
nمراحل:
- تقسیم آرایه A[p..r] به دو زیرآرایه A[p..q-1] وA[q+1..r] به طوری که هر عنصر A[p..q-1] کوچکتر یا مساوی A[q] است و A[q] کوچکتر یا مساوی هریک از عناصر A[q+1..r] می باشد.
- دو زیر آرایه A[p..q-1] وA[q+1..r] را با فراخوانی های بازگشتی مرتب سازی سریع مرتب می کنیم.
شامل 37 اسلاید powerpoint
دانلود پاورپوینت روش تقسیم و حل Divide and Conqure