描述
乙個長度為l(l≥1)的公升序序列s,處在第l/2(若為小數則去掉小數後加1)個位置的數稱為s的中位數。例如,若序列s1=(11,13,15,17,19),則s1的中位數是15。兩個序列的中位數是含它們所有元素的公升序序列的中位數。例如,若s2=(2,4,6,8,20),則s1和s2的中位數是11。現有兩個等長公升序序列a和b,試實現乙個在時間和空間兩方面都盡可能高效的演算法,找出兩個序列a和b的中位數。
輸入
多組資料,每組資料有三行,第一行為序列的長度n,第二行為序列a的n個元素,第三行為序列b的n個元素(元素之間用空格分隔)。當n=0時輸入結束。
輸出
對於每組資料分別輸出兩個序列的中位數,佔一行。
輸入樣例 15
11 13 15 17 19
2 4 6 8 20
61 2 3 4 5 6
7 8 9 10 11 12
0輸出樣例 111
6**
#include
using
namespace std;
typedef
struct linklink,
*linklist;
void
create
(linklist& l,
int n)
}void
findmed
(linklist a,linklist b,
int n)
else
} cout<>data<}int
main()
return0;
}
資料結構 實驗一(兩個單鏈表合併)
設有兩個無頭結點的單鏈表,分別為ha,hb,其鏈中有資料域data,鏈域next,兩鍊錶的資料都按遞增序存放。現要求將hb表歸到ha表中,且歸併後ha仍按遞增排序,歸併中ha表中已有的資料若與hb相同,則hb中的資料不歸併到ha中,hb的鍊錶在演算法中不允許破壞。兩個單鏈表合併源 include i...
資料結構和演算法經典100題 第33題
最大值減去最小值小於或等於num的子陣列的數量 題目要求 給定陣列srr和整數num,返回共有多少滿足如下條件的子陣列?max min num max表示陣列arr i j 中最大的值 min表示陣列arr i j 中最大的值 說明 如果陣列的長度為n,請實現時間複雜度為o n 的演算法 題目解析 ...
資料結構實驗一,第37題 陣列的分割
描述 已知由n n 2 個正整數構成的集合a 0 k輸入 多組資料,每組資料兩行。第一行為乙個整數n,代表陣列中有n個元素。第二行為陣列中的n個元素 元素之間用空格分隔 當n等於0時,輸入結束。輸出 每組資料輸出兩行。第一行為子集a1,第二行為子集a2,每兩個元素用空格分隔。輸入樣例 14 1 2 ...