Я пытаюсь запустить двоичный поиск, где пользователь может ввести значение, а мой метод двоичного поиска вернет номер детали и цену, но он ничего не возвращает при вводе какого-либо значения , Поиск используется для параллельных массивов. Я называю метод ниже в основном.Двоичный поиск не возвращает ничего
public int binSearch(int target)
{
int first = 0;
int last = numCount -1;
boolean found = false;
while(first <= last && !found)
{
mid = (first + last)/2;
if(partNum[mid]==target)
{
found = true;
}
else if(partNum[mid]<target)
{
first = mid +1;
}
else if(partNum[mid]>target)
{
last = mid -1;
}
else if(!found)
{
mid = -1;
}
return mid;
}
Вот код, который вызывает метод в основном классе.
index = inputDevice.nextInt();
while(inventoryArray.binSearch(index) >= 0);
{
System.out.printf("Binary search found part #%d. The price is $%d\n", index, inventoryArray.binSearch(index));
Файл для массива уже отсортирован. Я обновил возвращение и добавил перерыв, но он все равно ничего не вернет. Вы хотите, чтобы я включил больше информации о классе основного класса и массива? – Checkpleese
Да, пожалуйста, это было бы полезно –
Я просто установил его для возврата -1, и после этого программа скомпилирована. Я думаю, что это что-то о возвращении в середине. – Checkpleese