求兩個長度相等的排序陣列的上中位數

2022-02-08 20:17:07 字數 722 閱讀 7845

給兩個排序好的整數陣列,陣列的長度是相同的,找到這兩個陣列的上中位數,也就是如果陣列是偶數的話,輸出前乙個中位數。

時間複雜度o(logn),空間複雜度o(1)

public

class

upmedian

if(arr1.length!=arr2.length)

int start1 = 0;

int end1 = arr1.length-1;

int middle1 = 0;

int start2 = 0;

int end2 = arr2.length-1;

int middle2 =0;

//用來區分陣列長度為奇偶數

int offset = 0;

while(start1 else

if(arr1[middle1] else

}return

math.min(arr1[start1], arr2[start2]);

}public

static

void

main(string args) ;

int a2 = ;

system.out.println(getupmedian(a1, a2));

}}

這種題重在分析各種情況,

基本原理就是二分查詢,但是你要確定你查詢最合適的子陣列,這樣才能達到o(logn)的時間複雜度

演算法總結之 在兩個長度相等的排序陣列中找到上中位數

題目描述 arr1 和 arr2 長度都為n 求兩個陣列中所有數的上中位數 要求 時間複雜度 o logn 額外空間複雜度o 1 這道題目的方法比較好玩 這兩個陣列如下表示 arr1 start1.end1 arr2 start2.end2 如果start1 start2 那麼也有start2 en...

在兩個長度相等的排序陣列中找到上中位數

給定兩個有序陣列arr1和arr2,已知兩個陣列的長度都為n,求兩個陣列中所有數的上中位數。上中位數 假設遞增序列長度為n,若n為奇數,則上中位數為第n 2 1個數 否則為第n個數 輸入為 arr1 1,2,3,4 arr2 3,4,5,6 輸出為3 輸入為 arr1 0,1,2 arr2 3,4,...

在兩個長度相等的排序陣列中找到上中位數

在兩個長度相等的排序陣列中找到上中位數 給定兩個有序陣列arr1和arr2,已知兩個陣列的長度都為n,求兩個陣列中所有數的上中位數。上中位數 假設遞增序列長度為n,若n為奇數,則上中位數為第n 2 1個數 否則為第n個數 要求 時間複雜度為o l ogn o logn o logn 額外空間複雜度為...