/*
Let X[0..n-1] and Y[0..n-1] be the two arrays, each containing n numbers already in the sorted order.
Give an O(log n) time algorithm to find the median of all 2n elements in array X and Y.
*/
#include <iostream>
using namespace std;
template <typename T>
T median2 (T* X, T* Y, int size)
{
int m = (size - 1) / 2;
if (X[m] == Y[m])
{
return X[m];
}
else if (X[m] > Y[m])
{
return size == 1 ? Y[m] : median2 (X, Y + size - m - 1, m + 1);
}
else
{
return size == 1 ? X[m] : median2 (X + size - m - 1, Y, m + 1);
}
}
void main()
{
int a[6] = {1, 2, 3, 7, 19};
int b[6] = {12, 13, 25, 28, 33};
int median = median2(a, b, 5);
cout << median << endl;
}
// Output:
/*
12
*/
分享到:
相关推荐
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] ...
(1)设X[0:n-1]和Y[0:n-1]为两个数组,每个数组中含有n个已排好序的数,设计一个算法复杂度为O(logn)的分治算法,找出X和Y中2n个数中的中位数。(中位数:个数为奇数:中间位置上的数;个数为偶数,中间两个数的...
将两个有序数组,合并成另一个有序的数组,升序。将两个有序数组,合并成另一个有序的数组,升序。将两个有序数组,合并成另一个有序的数组,升序
设X[0:n-1]和Y[0:n-1]为2 个数组,每个数组中含有n 个已排好序的数。试设计一个O(log n)时间的算法,找出X 和Y 的2n 个数的中位数。 ★数据输入 输入数据第1 行是每个数组中元素个数n;接下来的2 行中每行有n 个整数,...
一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。 随机产生1000以上的数据(有正有负),写入文件input.txt 比如数组{2,4,...
57春节7天练---Day-1:数组和链表 数组和链表.pdf
无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,帮助您掌握Java中实现最短子数组的方法。我们相信,该资源将成为想提高算法设计技能的Java程序员的宝贵参考资料。
这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要将两个数组合并成为一个的情况。比如: var a = [1,2,3];...
算法中数据结构的一个重要的应用,树状数组的两个应用。写的比较详尽
由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制
算法-数组排序 按数组内数字大小排序 取得最大值或最小值.rar
算法/编程练习:两个有序数组的中位数 题目来自LeetCode: https://leetcode-cn.com/problems/median-of-two-sorted-arrays/ 题目: 给定两个大小为 n1 和 n2 的有序(升序)数组 nums1 和 nums2 , 找出这两个有序...
嵌入式学习-02-数据结构和算法 (数组)
VB070-求两数组相同的数 源代码
用数据结构与算法 实现的数组 用一维数组定义用 二维数组 定义三维数组 用模版
算法-数据结构- 树状数组.rar
有两个数组a,b,大小都为n,数组元素的值任意,无序 //要求:通过交换a,b中的元素,使数组a的元素之和与数组b的元素之和之间//的差最小?
分割数组算法分割数组算法分割数组算法分割数组算法分割数组算法分割数组算法
Giovanni Manzini and Paolo Ferragina 吸取了前人多种经验,结合n个算法,组建了最快的sa构建法.2005年新出的算法.是GNU开源项目,竞赛中 1000万的数据是 1 s,文件相当多,不能写在博客里,linux源码可以看: ...