算法——分治

本文探讨了分治算法在排序问题中的应用,如归并排序和快速排序。这两种方法通过递归将大问题分解为小问题解决,并最终合并结果。此外,还提及了二叉树遍历、折半查找与分治思想的关系,以及如何利用分治策略解决最近对问题和凸包问题。分治算法在大整数乘法和矩阵乘法中也有重要应用。
摘要由CSDN通过智能技术生成

概念

将问题实例划分为同一个问题的几个较小实例,最好拥有相同规模
对每一个较小规模的实例进行求解
如果需要则以某种方式合并这些小问题的解得到原问题的解

归并排序

将列表分为两个大小最接近的部分,递归地拆分
返回上一层递归时,将每两个小部分合并为有序的部分
继续返回给上一层递归,直到合并为完整列表

快速排序

快速排序通过一个切分元素将数组分为两个子数组,左子数组小于等于切分元素,右子数组大于等于切分元素,将这两个子数组排序也就将整个数组排序了。

折半查找


递归
非递归

二叉树遍历及其相关特性

对二叉树的操作变为对左右子树分别操作
计算二叉树高度

二叉树遍历(查找)折半查找
不是所有二叉树的操作都体现分治思想

大整数乘法和Strassen矩阵乘法


分治解最近对问题


时间复杂度:O(nlogn)

分治解凸包问题

找到某种方式将点集合分为两个部分,且两个部分可以使用相同的方法求解
某一个维度上的最大值与最小值一定是顶点
顶点的连线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值