나는 그것을 인터넷에서 찾았고 그것의 알고리즘에 대한 설명을 알고 싶습니다. 나는 이것을 이해하는 데 어려움을 겪고 있습니다. 정말 고맙습니다 :)
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");
}
}
귀하의 답변에 감사드립니다. 다시 한번 감사드립니다.
이진 검색 알고리즘은 대상 값을 정렬 된 배열의 중간 요소 값과 비교하여 시작합니다. 대상 값이 중간 요소의 값과 같으면 위치가 반환되고 검색이 완료됩니다. 대상 값이 중간 요소의 값보다 작 으면 배열의 아래쪽 절반에서 검색이 계속됩니다. 또는 대상 값이 중간 요소의 값보다 크면 배열의 위쪽 절반에서 검색이 계속됩니다. 이 프로세스는 계속되어 요소의 절반을 제거하고 대상 값을 찾을 때까지 (및 관련 요소 위치가 반환 될 때까지) 또는 전체 배열이 검색되었습니다 ( "찾을 수 없음"이 반환 됨).
여기에 당신의 대답이 아름답게 설명되어 있습니다.
이것을 확인 하십시오 http://www.csit.parkland.edu/~mbrandyberry/CS1Java/Lessons/Lesson27/BinarySearch.htm
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다