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
"작동하지 않는다"는 것은 무엇을 의미합니까? '참석자들'이 분류 되었습니까? 정렬되어 있는지 확인해야합니다. 그렇지 않으면 2 진 검색이 작동하지 않습니다. "left of"요소가 "compareTo"에서 "right of"값보다 작은 값을 반환하도록해야합니다. –