渣渣渣變渣渣系列(2)

2021-07-29 19:59:19 字數 1009 閱讀 8386

一、題目描述:(408聯考真題 2011)

二、演算法思想:

分別求兩個公升序序列a和b的中位數,設為a和b,求序列a和b的中位數過程如下:

1)若a=b,則a或b即為所求中位數,演算法結束。

2)若a3)若a>b,則捨棄序列a中較大的一半,同時捨棄序列b中較小的一半,要求兩次捨棄的長度相等。

在保留的兩個公升序序列中,重複1)、2)、3),直到兩個序列中均只含乙個元素為止,較小者即為所求。

三、核心**:

int m_search(int a,int b,int n)

if(a[m1]四、完整**:

#includeint m_search(int a,int b,int n);

void print(int a,int n);

int main()

; int b[5]=;

int n=sizeof(a)/sizeof(int);

print(a,n);

print(b,n);

printf("%d\n",m_search(a,b,n));

return 0;

}int m_search(int a,int b,int n)

if(a[m1]五、測試分析:

演算法時間複雜度lg(n),空間複雜度1。

渣渣渣變渣渣系列(1)

一 題目描述 408聯考 2010真題 二 演算法思想 可以將這個問題看作是把陣列ab轉換為ba a代表陣列的前p個元素,b代表陣列中的餘下n p個元素 先將a逆置得到a 1b,再將b逆置得到a 1b 1,最後將整個a 1b 1逆置為 a 1b 1 1 ba。三 核心 void reverse in...

渣渣渣變渣渣系列(3)

一 題目描述 二 演算法思想 本演算法的巧妙之處在於充分利用主元素的定義,即在序列中個數超過半數的元素。那麼在動態統計的過程中,主元素出現的頻率要最大可能的大於1 2。由於是動態統計,所以可能在區域性範圍內可能出現誤判,當主元素在序列分布不均時,可能一開始出現誤判,但最終是會被糾正的,這個是可以通過...

渣渣演變之路

讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...