find(value)为返回数组a[]的下标。
在这里的for语句是否可以使用二分法代替,我想不到,但他要求使用二分法来删除a[j]
public boolean delete(long value)
{
int j = find(value);
if(j==nElems) // can't find it
return false;
else // found it
{
for(int k=j; k<nElems; k++) // move bigger ones down
a[k] = a[k+1];
nElems--; // decrement size
return true;
}
}
在这里的for语句是否可以使用二分法代替,我想不到,但他要求使用二分法来删除a[j]
public boolean delete(long value)
{
int j = find(value);
if(j==nElems) // can't find it
return false;
else // found it
{
for(int k=j; k<nElems; k++) // move bigger ones down
a[k] = a[k+1];
nElems--; // decrement size
return true;
}
}
我觉得这个题的意思就是用二分法查找并删除一个元素;但没说删除得用二分法。
恕我孤陋寡闻 没听过什么二分法删除的