尋找兩個正序陣列的中位數

2021-10-21 08:38:07 字數 1196 閱讀 6299

突然發現還有文章標題,前兩天忘記寫了,今天是自己搞出來的

廢話不多說,開整

示例 1:

輸入:nums1 = [1,3], nums2 = [2]

輸出:2.00000

解釋:合併陣列 = [1,2,3] ,中位數 2

示例 2:

輸入:nums1 = [1,2], nums2 = [3,4]

輸出:2.50000

解釋:合併陣列 = [1,2,3,4] ,中位數 (2 + 3) / 2 = 2.5

示例 3:

輸入:nums1 = [0,0], nums2 = [0,0]

輸出:0.00000

示例 4:

輸入:nums1 = , nums2 = [1]

輸出:1.00000

示例 5:

輸入:nums1 = [2], nums2 =

輸出:2.00000

有兩個陣列已知長度,讓我們找中位數

在此用到乙個輔助陣列,將兩個已知陣列遍歷進行複製

然後對其冒泡,當然其他排序方法也可以

求len,複製陣列到新陣列中

int len = nums1size + nums2size;

int nums3[len];

int i,j;

int k=0;

double centernumber=0.0;

for(i=0;i氣泡排序

int temp;

for(int m=0;mnums3[n+1])

}}

求中位數

if(len%2==0)else
兩個初始陣列全空,乙個空另乙個不空的情況即可

if(nums1size==1&&nums2size==0)

if(nums2size==1&&nums1size==0)

if(nums1size==0&&nums2size==0)

double findmediansortedarrays(int* nums1, int nums1size, int* nums2, int nums2size)

}}if(len%2==0)else

return centernumber;

}

今天實力勉過,明天繼續

尋找兩個正序陣列的中位數

尋找兩個正序陣列的中位數 二分法根據中位數的定義,當 m n 是奇數時,中位數是兩個有序陣列中的第 m n 2 個元素,當 m n 是偶數時,中位數是兩個有序陣列中的第 m n 2 個元素和第 m n 2 1 個元素的平均值。因此,這道題可以轉化成尋找兩個有序陣列中的第 k 小的數,其中 k 為 m...

尋找兩個正序陣列的中位數

題目 給定兩個大小為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 思路 因為兩...

尋找兩個正序陣列的中位數

給定兩個大小為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出並返回這兩個正序陣列的中位數 示例 1 輸入 nums1 1,3 nums2 2 輸出 2.00000 解釋 合併陣列 1,2,3 中位數 2 示例 2 輸入 nums1 1,2 nums2 3,4 輸出 2.5...