当前位置: 首页 > 科技观察

面试官:谈谈你对分治法和动态规划的理解?区别?

时间:2023-03-20 02:19:38 科技观察

1。分治法分治法是算法设计中的一种方法,是将一个复杂的问题划分为两个或多个相同或相似的子问题,直到最终的子问题能够简单直接地解决,而原问题的解problem即子问题的解的合并,为了实现分而治之,会经过三个步骤:.求解:如果子问题很小且容易求解,直接求解。否则,递归地解决子问题。合并:将子问题的解合并为原问题的解。其实我们之前就用过分而治之的思想。步骤:分解:将数组从中间一分为二解:递归合并排序两个子数组根据基准将数组分成两个词数组解:递归快速排序两个词数组合并:合并两个词数组相同二分查找也可以利用分而治之的思想来实现,代码如下:functionbinarySearch(arr,l,r,target){if(l>r){return-1;}letmid=l+Math.floor((r-l)/2)if(arr[mid]===target){returnmid;}elseif(arr[mid]