采用递归思想 把大问题分解成一些小问题然后利用小问题的解方便地构造出大问题的解.
分治法所能解决问题所具有的特征
(1)问题缩小到一定程度就能很容易的解决
(2)问题可以分解成许多相似的小问题
(3)子问题的解可以合并为该问题的解
(4)每个子弹问题都是相互独立的即子问题之间 不包含公共的子问题.
1绝大多数的问题都具有。
2.分治法的前提。
3.能否利用分治法的必备特征只具备了
12可以考虑使用贪心法或者动态规划法
4.涉及分治法的效率如果子问题之间不独立分治法要做许多不必要的工作虽然可以使用分治法但一般采用动态规划更好。
将问题划分 为大小相等的一个子问题称为减治法,分成两个为二分法.
3.2求解排序问题
3.2.1快速排序 平均时间复杂度为O (blog 2^n)
快速排序的基本思想是在待排序的n个元素中任取一个元素 (通常取 第一个元素)作为基准 ,把该元素放入到最终位置后,整个数据序列被基准分割成两个子序列 ,所有小于基准的放在前子序列大于基准元素放在后子序列并把基准放在两个子序列中间这个过程被称为划分,重复这个过程直到每个序列只剩一个元素或者空为止
3.2.2 归并排序分为二路归并排序和多路归并排序, 1.自底向上的二路归并排序算法效率高但可读性很差 2。自顶向下的二路归并算法算法
简介3.3求解查找的问题
3.3.1 查找最大次大元素
3.3.2 折半查找又称二分查找他是一种效率较高的查找方法,但是折半查找要求查找序列中的元素是有序的。 3.3.3 寻找一个序列中第k小的元素
3.3.4 寻找两个等长有序序列的中位数
3.4 求解组合问题
3.4.1 求解最大连续子序列和lol呢问题
3.4.2 求解棋盘覆盖问题.
3.4.3 求解日程安排问题
分治法
最新推荐文章于 2023-05-12 19:31:41 发布