算法第二章上机实践报告

//参考博客链接https://www.cnblogs.com/xyishere/p/11567173.html

算法题目

算法第二章上机实践报告_第1张图片

算法描述:

定义2个数组,输入值,运用二分的方法寻找中位数

首先求2个数组的中间值

若中间值相等,则为中位数,返回中位数

否则就看2个中间值的大小,如果a数组的中间值大,则向左调整a数组的区间,否则往右,b则与a调整方向相反,调用这个函数

二分函数的情况

【1】若第一个数组只剩一个元素且第二个数组有多个元素,则若a[l1]>b[r2]返回b[r2],否则返回a[l1]

 

【2】若第二个数组只剩一个元素且第一个数组有多个元素,如果b的元素小于a最大的元素,则取b,否则取a,

【3】如果都只剩下一个元素,则求每个数组中间的值,缩小查找的范围,再次调用

算法的空间复杂度没有开辟新空间O(1)的

算法的时间复杂度是O(log n)的,因为调用这个函数,最多调用log n次

心得:对于排序,我只知道一个sort函数,时间复杂度是nlogn的,老师要用log n的时间复杂度,就完全不知道怎么办,参考了一下别人的代码,才知道二分原来可以这样用,还是太菜,还要继续学习。

 

你可能感兴趣的:(算法第二章上机实践报告)