我一開始是想:
先在a陣列中選擇乙個數x,再在b陣列中找到兩個相鄰的數,讓x夾在它們中間,由此確定x的位置,進而判斷是否是中位數,但是找到相鄰的數複雜度是o(n)的,無奈,只好作罷-_-
後來發現有人是反過來做的,直接根據b中的座標判斷x是大於還是小於中位數,有的時候,真的需要換個角度!!
分治演算法,需要注意的是遞迴的終止條件是l>=r而不是l==r,導致stack overflow的原因很多很多^-^,
/** source.c
* * created on: feb 17, 2016
* author: wing
*/#include#includeint select(int *a,int *b,int n,int l,int r,int *result)
else
if (l>=r)
return 0;
else
if (a[m]b[n-m-1])
return select(a,b,n,l,m-1,result);
}int main(void)
{ int *a,*b,n,i,*result;
scanf("%d",&n);
a=(int *)malloc(sizeof(int)*n);
b=(int *)malloc(sizeof(int)*n);
for (i=0;i
兩個陣列找相同元素 Excel 陣列公式全面解析
重要 今晚19 30的直播大家不要忘記哦 excel 陣列公式是什麼?怎麼用?終於有人說清楚了。1.陣列的建立 在excel中,我們使用花括號來建立乙個陣列,建立的步驟如下 選擇與陣列大小相同的區域 在公式編輯欄使用花括號建立陣列 使用陣列公式執行方式執行公式 ctrl shift enter 下面...
查詢兩個陣列相同元素
攢rp ing 一場面試的一道演算法題,題目如下 有兩個公升序的陣列,在這兩個陣列裡面有且只有乙個相同的元素,考慮時間和空間複雜度,找到該元素,禁用js中所有方法,單純演算法題 emmmmm,為何和我之前的不一樣 話不多說,上 我真是越來越喜歡動手敲一下了 function foo arr 1,ar...
交換兩個陣列的元素,使兩個陣列和的差最小
前些時候面試碰到的題目 有兩個有序正整數陣列array1 n array2 m 通過交換兩陣列的元素,使兩個陣列的和最接近。基本演算法思路 每次從array1 array2選擇出一對能使交換後得array1和與array2和的差值變小的組合array1 i array2 j 作交換 直到對任意組合a...