分治法总结

分治法根据起思路分为三步

1.原问题分解子问题

2.求解子问题

3.返回子问题的答案,组合子问题的解得出原问题的解

 

attention:

1.分解子问题时,需要将原问题划分为不相交的子问题。

2.分解子问题时,常用思路为 原问题划分为左右两段 

 

case1 原问题左右划分:

1.快排  1)将原数组划分为子问题(子数组)左右进行递归排序。 2)归位子问题的哨兵位置  3)最终得到原问题的解,即有序数组

2.第k大的数(半分治)。1)借用快排思想进行左 右递归查找  2)当子问题哨兵位置被找到,即找到子问题、原问题的解

3.数位交换 将32bit串 镜像颠倒。 1)将原数组划分为左右两段交换,对左右两端继续进行交换下去。。直到相邻两个bit进行交换

posted @ 2021-06-30 22:08  会飞的雅蠛蝶  阅读(100)  评论(0编辑  收藏  举报