以下**可以從陣列a中找出第k小的元素。
它使用了類似快速排序中的分治演算法,期望時間複雜度是o(n)的。
請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。
#include
int quick_select
(int a[
], int l, int r, int k)
int i = l, j = r;
while
(i < j)
while
(i < j && a[j]
> x) j--;if
(i < j)
} a[i]
= x;
p = i;
if(i - l +
1== k)
return a[i];if
(i - l +
1< k)
return
quick_select
( _____________________________ )
;//填空
else
return
quick_select
(a, l, i -
1, k);}
int main()
;printf
("%d\n"
,quick_select
(a,0,14
,5))
;return0;
}
答案:a,i+
1,r,k-i+l-
1不過在個人理解來看,a,l,r,k也可以,不過複雜度高。
第九屆藍橋杯省賽 第五題 快速排序
以下 可以從陣列a中找出第k小的元素。它使用了類似快速排序中的分治演算法,期望時間複雜度是o n 的。請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。注意 只填寫劃線部分缺少的 不要抄寫已經存在的 或符號。include includeint quick select int a,int l,int ...
第九屆藍橋杯初賽C B組第五題 快速排序
以下 可以從陣列a中找出第k小的元素。它使用了類似快速排序中的分治演算法,期望時間複雜度是o n 的。請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。答案 a,i 1,r,k i l 1 include int quick select int a,int l,int r,int k int i l,...
第九屆藍橋杯省賽C B組 螺旋折線
如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y 對於40 的資料,1000 x,...