
不了解分治算法但是实际中已经使用分治算法了。分治算法就是将一个问题拆分将数据结构拆分拆分成几份每一份各自计算然后再汇总结果。二分法是典型的分治算法也是分治算法的基本思想将数据结构分成两份两份分别完成自己的工作。快速排序也属于分治算法将数据分成左右两侧分别排序。链表排序也属于分治算法也属于归并算法归并算法就是器皿中额很多小水珠逐渐合并成一个大水珠的过程。可以直接从微观到宏观进行归并也可以采用递归算法进行归并递归算法更好理解把每一半归并完最大的两半再归并。1寻找峰值162. 寻找峰值 - 力扣LeetCode这个题目如果不考虑时间复杂度的影响是很简单的直接遍历就可以了两个断点两个边界条件特殊处理特殊判断就可以。但是这个题目有时间复杂度的要求就是O(log n)要满足这个时间复杂度一般就是二分法。时间复杂度和空间复杂度其实不单单在讨论数据结构和算法题目的时候要考虑在实际写代码的时候也要考虑在Linux下编程一般很少考虑的这么精致但是也有很多人写代码很精致每段代码都要考虑时间复杂度和空间复杂度。解决这个题目的算法叫上坡法。只要当前这个中点满足条件那么这一侧数据一定是满足条件的。快速排序和堆排序的时间复杂度是O(nlogn)而不是O(logn)时间复杂度要具体问题具体分析而不要靠背可能这样肯定会做错。2搜索插入位置35. 搜索插入位置 - 力扣LeetCode