1
public int BinarySearch(int x)
{
//if (Attendees.Length == 0)
// return -1;
int mid = (Count/ 2) -1;
Student cur = new Student(x);
while (cur.CompareTo(Attendees[mid]) != 0)
{
int sCount = Count;
if (cur.CompareTo(Attendees[mid]) < 0)
{
int NCount = sCount/2;
mid = NCount/2 - 1;
}
if (cur.CompareTo(Attendees[mid]) > 0)
{
int Start = mid +1;
mid = (Start + sCount)/2;
}
else
break;
cur = Attendees[mid];
}
if (cur.CompareTo(Attendees[x]) == 0)
return mid;
else
return -1;
}
任何人都可以幫我找出爲什麼我的二分查找不起作用嗎?我很新的編程,所以任何幫助將不勝感激。謝謝。C#二進制搜索
如果這不是家庭作業,請注意,您可以使用'Array.BinarySearch'方法。 –
我現在坐在課堂上,任務是對它進行編程,當我請她解釋時,講師並沒有什麼幫助。 – user2046257
你是什麼意思的「不工作」? 「參加者」排序了嗎?你需要確定它是排序的,否則二分查找不起作用。您需要確保「CompareTo」中的元素在「CompareTo」中返回的值小於「right of」x的值。 –