0
我試圖通過修改二進制搜索算法來實現它。如何在排序後的數組中找到一個元素,使得它之後的所有元素都大於給定值?
int search(int *a, int start,int end,int sum){
int s=start,e=end-1,m;
while(s <= e){
m=s+(e-s)/2;
if(a[m] == sum){
return m+1;
}
else if (a[m] < sum) {
s = m + 1;
}
else {
e = m - 1;
}
}
return m;}
上述算法有什麼問題?
您是指所有元素之後的所有元素的總和大於給定值?或者每個元素應該由它自己更大?你能舉一個簡單的例子嗎? – amit
什麼輸入導致_wrong_結果,然後? – timrau
「An」元素?由於數組被排序,所以如果元素X滿足條件,那麼在X之後的所有元素也滿足條件。任何數組的最後一個元素也可能滿足這個要求:它後面的(零)元素都大於您選擇的任何值。這個問題需要更嚴格地規定。 – Jon