الگوریتم برنامه نویسی پویا:
در برنامه نویسی پویا به عنوان یك روش طراحی الگوریتم، چون راه حل مسأله از طریق تقسیم آن به زیرمسأله ها به دست می آید، مشابه روش تقسیم وحل است ولی برعكس آن، یك روش پائین به بالا یا یك روش جز به كل است، یعنی حل مسأله را از ساده ترین زیرمسأله شروع كرده و با قراردادن نتایج در یك آرایه، آنها را در محاسبات بعدی استفاده می كنند. در صورتی كه روش تقسیم و حل فاقد حافظه است. این روش طراحی الگوریتم، دارای شرایط بهینه سازی است وزیرمسأله ها هم بهینه هستند. به عنوان مثال، اگر برنامه نویسی پویا، برای مسأله كوتاه ترین مسیر كه با یك گراف مدل سازی می شود به كار می رود، هر زیرگرافی هم باید دارای ویژگی كوتاه ترین مسیر بین رأس های متشكله آن باشد. اگر اصل بهینه سازی برای یك مسأله مفروض، صدق كند می توان یك رابطه بازگشتی برای حل مسأله و زیرمسأله ها ارائه داد.
الگوریتم فلوید برای تعیین كوتاه ترین مسیر، ضرب زنجیری ماتریس ها، درخت های جست وجوی دورویی بهینه حاصل جمع بهینه لیستی از n عدد حقیقی، تعیین طولانی ترین زیر مشترك در دو رشته دلخواه و مسأله فروشنده دوره گرد (TSP) با استفاده از روش برنامه نویسی پویا قابل انجام هستند.