資料結構實驗一,第33題 求解兩個公升序序列的中位數

2021-09-28 12:30:38 字數 891 閱讀 2904

描述

乙個長度為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 ...