求兩個(gè)升序序列的中位數(shù)

設(shè)數(shù)組A(A的個(gè)數(shù)為偶數(shù)):2 4 6 8 19 24

設(shè)數(shù)組B(B的個(gè)數(shù)為偶數(shù)):7 9 11 13 15 17

m1 = (start1 + end1) / 2;

m2 = (start2 + end2) / 2;

start1 = 0, end1 = n – 1

start2 = 0, end2 = n – 1

此時(shí)(start1 +

end1) % 2 != 0,說明序列個(gè)數(shù)為偶數(shù)個(gè)

所以A[m1] =

(A[m1] + A[m1+1]) / 2;

B[m2] = (B[m2] + B[m2+1]) / 2;

1)若a=b,則a或b即為所求中位數(shù),算法結(jié)束。

2)若a<b, 則舍棄序列A中較小的一半,同時(shí)舍棄序列B中較大的一半,要求兩次舍棄的長度相等。

3)若a>b,則舍棄序列A中較大的一半,同時(shí)舍棄序列B中較小的一半,要求兩次舍棄的長度相等。

在保留的兩個(gè)升序序列中,重復(fù)過程1)、2)、3),直到兩個(gè)序列中均只含一個(gè)元素時(shí)為止,上面所求的中位數(shù)較小者即為所求的中位數(shù)。

Java代碼如下



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容