我有一個數組A,其中n≥10000個不同的正整數。試圖編寫一個算法,輸出A的一個元素x,使得x不在A的前5個元素中,也不在A的最後5個元素中.A的前5個元素和後5個元素是前5個元素, A排序後最後5個元素。另外我需要在大約50次比較中做到這一點。
我做了什麼:
我使用等級的概念,處理這個問題。 我拿6個數字並找到它的最大值。所以這將確保我的人數不在最高(前五)元素之中。但是這並不能確保我的人數不在最後5個元素之中。
僞至今:
//選擇從我的陣列A.任何6個元素
int max = A[0];
for(int i = 0; i<6 ; i++)
{
if(A[i] > max)
max = A[i];
}
這會給我一個號碼(最多),這將肯定不會是數組的第一個5元之間但我應該怎麼處理最後5個元素呢?
你是在做5%的元素還是前5和5? – pannu