2021-05-23

本周的学习重点是递归和二分查找算法。递归主要涉及三个步骤:定义递归关系、设定边界条件和实现递归函数。二分查找的应用包括基础查找、范围查找、旋转数组查找和矩阵查找等。在处理旋转数组和峰值问题时,二分查找展示了其高效性。此外,还讨论了递归解决问题的条件,并分析了二分查找的时间复杂度为O(logn)。
摘要由CSDN通过智能技术生成

本周的学习主要是搜索
复习递归,总结一下递归形式1.找到递归关系,前一状态与后一状态的关系,直到已知状态。2.设置边界,找到初末递归状态。(知道什么时候停止)3.设计递归函数。(主要运用的是二分法的有关知识)。
做到二分查找的部分,发现其实这种类型的题目很有规律,题目大致的分为以下几类:

1.最基础的二分查找题目,在一个有序的数组当中查找某个数,如果找到,则返回这个数在数组中的下标,如果没有找到就返回-1或者是它将会被按顺序插入的位置。这种题目继续进阶一下就是在有序数组中查找元素的上下限。继续做可以求两个区间的交集。

2.旋转数组问题,就是将一个有序数组进行旋转,然后在数组中查找某个值,其中分为数组中有重复元素和没有重复元素两种情况。

3.在杨氏矩阵中利用二分查找,针对矩阵性质的不同,有多种解法,可以对每一行遍历然后进行二分,也可以从左下角进行二分查找,也可以从右上角进行二分查找。

4.函数的极大值问题,就是在一个数组中求极大值,极大值就是某个数大于数组当中左右两边的数,位于端点的元素只需大于它挨着的元素就行。典型的例题就是寻找峰值问题。

5.利用极限和二分查找的思想,进行幂运算,开平方根和对数函数的求解,对于浮点数和整数有何异同。
工作流程
将中间元素与target进行比较如果匹配,则返回true如果不匹配, 如果中间元素比target大,则继续搜索左半部分; 如果中间元素比target小,则继续搜索右半部分不断搜索,直到找到target或者查找区间变为04、伪代码以下是二分查找的伪代码,当数组没有重复元素时,返回target的下标或者查找失败的标志;当数组有重复元素时,返回其中一个元素的下标,具体返回哪个取决于数组中数据的分布状况5、性能分析二分查找是一种高效的查找算法,当数据规模为n,由于每次迭代数据都会缩小为原来的一般,所以被查找区间的大小变化依次为:n, n/2, n/4, n/8, …, n/2^k, …。也就是按等比数列的形式缩小。由于当数据量大小为1时,停止迭代,所以,另n/2^k = 1,即可计算出总共迭代次数为k = logn。而时间复杂度无非就是循环次数,所以时间复杂度为O(logn)。空间复杂度比较次数 最坏最好。
而且在此想说一下运用递归的条件,问题可用递归来解决需具备的条件:

子问题需与原问题为同样的事,且规模更小;(在此回顾一下,纯属防止忘记),而且本周主要学习二分 所以总结也只能从这种方面了。希望以后继续深入学习。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值