寻找两个等size有序数组的中位数
来源:互联网 发布:struct node *link,*p 编辑:程序博客网 时间:2024/06/06 03:00
#include <iostream>#include <stdio.h>#include <fstream>using namespace std;int getMid(int* a,int* b,int Ai,int Aj,int Bi,int Bj){ int Amid = (Ai+Aj)/2; int Bmid = (Bi+Bj)/2; if(Aj-Ai+1==1) { if(a[Ai]<b[Bi]) { return a[Ai]; } else { return b[Bi]; } } if(Aj-Ai+1==2) { if(b[Bi]>=a[Ai]) { return b[Bi]; } else { return a[Ai]; } } if(a[Amid] == b[Bmid]) { return b[Bmid]; } else { if(a[Amid]<b[Bmid]) { if((Aj-Ai+1)%4==0) { getMid(a,b,Amid,Aj,Bi,++Bmid); } else { getMid(a,b,Amid,Aj,Bi,Bmid); } } else { if((Aj-Ai+1)%4==0) { getMid(a,b,Ai,++Amid,Bmid,Bj); } else { getMid(a,b,Ai,Amid,Bmid,Bj); } } }};int main(){ int size; freopen("input.txt","r",stdin); cin>>size; int *a=new int[size]; int *b=new int[size]; for (int i = 0; i < size; ++i) { cin>>a[i]; } for (int i = 0; i < size; ++i) { cin>>b[i]; } ofstream fout; fout.open("output.txt"); fout<<getMid(a,b,0,size-1,0,size-1); fout.close(); cout << getMid(a,b,0,size-1,0,size-1)<< endl; return 0;}
0 0
- 寻找两个等size有序数组的中位数
- 寻找两个有序数组合并之后的中位数
- 关于在一个序列中寻找中位数和第K大的数(在两个等长有序数组中寻找中位数)
- 求两个等长有序数组的中位数
- 求两个等长有序数组的中位数
- 两个有序数组的中位数
- 两个有序数组的中位数
- 两个有序数组的中位数
- 两个有序数组的中位数
- 两个有序数组的中位数
- 两个有序数组的中位数
- 两个有序数组的中位数
- 两个等长有序数组求中位数
- 寻找两个数组的中位数
- 寻找两个有序数组中的第K个数或者中位数
- 寻找两个有序数组中的第K个数或者中位数
- Median of Two Sorted Arrays - 寻找两个有序数组的中位数(重)
- [leetcode] Median of Two Sorted Arrays 寻找两个有序数组的中位数
- 我的博客正式开通啦!!!
- Poj 2559 最大矩形面积 v单调栈
- Lua 与C交互
- typedef int(init_fnc_t) (void);
- RichEdit显示行号
- 寻找两个等size有序数组的中位数
- 关于瀑布流和回到顶部的功能的冲突解决
- linux 流量监控
- Nginx 负载均衡
- bzoj1497 最大获利 最大权闭合图
- 如何获得线程的返回值?
- Unity3D技术之资源数据库 (AssetDatabase)详解
- 第十二周项目3-用递归方法求解(3)用递归函数求两个数的最大公约数
- 优化算法——牛顿法(Newton Method)