已知有兩個等長的非降序序列s1, s2, 設計函式求s1與s2並集的中位數。有序序列,的中位數指a
(n−1
)/2
的值,即第⌊個數(a
0為第1個數)。
輸入分三行。第一行給出序列的公共長度n(0在一行中輸出兩個輸入序列的並集序列的中位數。
5
1 3 5 7 9
2 3 4 5 6
4
6
-100 -10 1 1 1 1
-50 0 2 3 4 5
輸出樣例2:
1
#include#define ok 1
#define error 0
using namespace std;
typedef int status;
typedef int elemtype;
typedef struct lnode *list;
typedef struct lnode
lnode, *linklist;
status initlist(linklist &l)
void createlist(linklist &l, int n)
}void mergelist(linklist &la, linklist &lb, int data)
else
}while(pa)
while(pb)
delete lb;
}int main()
{ int n;
cin>>n;
linklist la,lb;
initlist(la);
initlist(lb);
createlist(la, n);
createlist(lb,n);
int data[n*2];
mergelist(la,lb,data);
cout<
查詢兩個有序序列的中位數
舉例 序列a 2,4,6,8,20 序列b 11,13,15,17,19 第一種方法 可以先把兩個有序表合併排列,之後查詢中位數,由於我們只需要檢視其第 2n 1 2個元素,故只需要排列好前 2n 1 2 1個元素,然後返回此時兩個序列中的較小值,時間複雜度o n int seach2 int ar...
兩個有序序列的中位數
5 7 兩個有序序列的中位數 25分 已知有兩個等長的非降序序列s1,s2,設計函式求s1與s2並集的中位數。有序序列a0,a1,an 1a 0,a 1,cdots,a a 0 a 1 a n 1 的中位數指a n 1 2a a n 1 2 的值,即第 n 1 2 lfloor n 1 2 rflo...
兩個有序序列的中位數
問題 已知有兩個等長的非降序序列s1,s2,設計函式求s1與s2並集的中位數。有序序列a 0 a 1 a n 1 的中位數指a n 1 2 的值,即第 n 1 2 個數 a 0 為第1個數 演算法描述 輸入兩個長度自定且等長的陣列,然後對他們進行賦值。演算法的思路是分別取他們的中位數進行比較,假設兩...