码迷,mamicode.com
首页 > 编程语言 > 详细

大二上学期算法第二章上机实践

时间:2018-10-15 00:38:16      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:心得   依次   log   输出   个数   解决方法   变量   复杂度   理解   

实践题目:两个有序序列的中位数
问题描述:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,?,AN?1的中位数指A(N?1)/2的值,即?(N+1)/2?个数(A0为第1个数)。
算法描述:用变量i和f作为两个数组的下标,依次比较并将两个数组所有元素归并成一个数组,最后直接输出合成数组第?(N+1)/2?个数。因为两个数组都是非降序序列,时间复杂度只有O(n)。
                  另外,该题目忽略元素的重复,用二分法直接不断两个数组的中位数,最后得到两个中位数,较小的那个即为所求答案,二分法时间复杂度为O(log2n)。
心得体会:通过拓展形式的题目,有了对二分法的更加深入理解。在解题过程中,发现2个以上解决方法能给自己带来益处以及成就感。

大二上学期算法第二章上机实践

标签:心得   依次   log   输出   个数   解决方法   变量   复杂度   理解   

原文地址:https://www.cnblogs.com/LucasLeeG/p/9788876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!