我發現它在網絡中,我想知道它的算法的解釋。 我很難理解這一點。非常感謝你:)有人可以解釋這個java程序的算法嗎?
import java.util.Scanner;
class BinarySearch
{
public static void main(String args[])
{
int c, first, last, middle, n, search, array[];
Scanner in = new Scanner(System.in);
System.out.println("Enter number of elements");
n = in.nextInt();
array = new int[n];
System.out.println("Enter " + n + " integers");
for (c = 0; c < n; c++)
array[c] = in.nextInt();
System.out.println("Enter value to find");
search = in.nextInt();
first = 0;
last = n - 1;
middle = (first + last)/2;
while(first <= last)
{
if (array[middle] < search)
first = middle + 1;
else if (array[middle] == search)
{
System.out.println(search + " found at location " + (middle + 1) + ".");
break;
}
else
last = middle - 1;
middle = (first + last)/2;
}
if (first > last)
System.out.println(search + " is not present in the list.\n");
}
}
我會感謝您的迴應。再次感謝。
這是一個二進制搜索程序,你爲什麼不運行它,看看爲你的自我它做什麼。 –
這是2016年,並且仍然有代碼示例,其中詢問用戶將提供多少條目並且實例化數組來保存它們。 – Neil