PAT DS 2 13兩個有序序列的中位數

2021-06-22 13:28:31 字數 599 閱讀 4303

沒有用時間o(n)的遍歷,直接用o(lgn)的二分查詢,不過輔助空間大了一倍。

對二分時的左右端處理(還有迴圈判斷)想了很久,之前沒有對m1+m2作判斷,導致劃分不均勻,結果一直錯。

關鍵在於保證,m1和m2對兩條序列的劃分能一直保持平分。

#include #define debug	printf

int n;

int s1[100000], s2[100000];

int main()

else if(s1[m1] > s2[m2])

else

} else

else

} debug("%d %d %d - %d %d %d\n", l1, r1, m1, l2, r2, m2);

} if(l1 == r1) printf("%d", s1[l1]);

else printf("%d", s2[l2]);

return 0;

}

最後輸出哪乙個的判斷也很重要,需要考慮迴圈跳出後的所有情況(必定有乙個左端記錄超過了右端)。

補:現在發現資料輸入就要o(n)時間了,o_t...

合併兩個有序序列

將兩個有序的數列,合併成乙個有序的序列 package toyprogram this class is used for author dlf 460795365 qq.com version 1.0,2016年9月13日 下午3 39 42 public class aboutarrayl in...

兩個有序序列的合併演算法

將兩個有序序列合併 merge 為乙個有序序列問題的形式化表示為 輸入 序列a p.r 其中,子串行a p.q 和a q 1.r 是有序的。輸出 a p.r 所有元素的重排,使之有序。用乙個漸增型演算法解決此問題。首先,把a p.q 和a q 1.r 分別複製到序列l 1.n1 和r 1.n2 中,...

兩個有序序列的中位數

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...