使用類似二進制搜索算法來找到地方算法,其中產品是: 一)插入排序列表我需要幫助解決這個算法
if (the item is already in this list)
// output an appropriate message
else
// use the method insertAt to insert the item in the list
我寫的方法,它不工作
public int search(int item)
{
int first=0;
int last=length-1;
int mid=-1;
boolean found =false;
while(first<=last && !found){
mid=(first+last)/2;
if(list[mid]==item)
found=true;
else
if(list[mid]-item>0)
last=mid-1;
else
first=mid+1;
}
if(found)
return mid;
else
return -1;
}
public void insert(int item) {
int loc = search(item);
if (loc != -1 && list[loc] != item)
insertAt(loc, item);
else
System.out.println("the item is already existing");
}
任何你沒有使用像HashSet這樣的現有Set實現的原因? – Thomas
不工作如何?我們可以看到你的搜索()方法嗎? –
@Thomas推測原因是「學校派遣」並不是一個延伸。 – millimoose