Page 10 -
P. 10
자바 라이브러리 사용 등록(37페이지 참조)
import java.util.Arrays;
코드는 반드시 BinarySearch.java 파일에 있어야 함(36페이지 참조)
public class BinarySearch 파라미터 변수
{ static 메서드(33페이지 참조)
public static int rank(int key, int[] a)
{ 리턴 타입 파라미터 타입
변수 초기화 int lo = 0;
선언문 int hi = a.length - 1;
(28페이지 참조)
while (lo <= hi)
{ 표현식(24페이지 참조)
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) hi = mid - 1;
반복문
(28페이지 참조) else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
} 리턴 구문
시스템 호출 main( )
단위 테스트 클라이언트(37페이지 참조)
public static void main(String[] args)
{
리턴 값 없음, 작업만 수행(35페이지 참조)
In in = new In(args[0]); 객체 생성(74페이지 참조)
int[] whitelist = in.readAllInts(); 인스턴스 메서드 호출
(75페이지 참조)
Arrays.sort(whitelist); 자바 라이브러리의 static 메서드(37페이지 참조)
while (!StdIn.isEmpty())
이 책의 표준 라이브러리의 static 메서드 호출
{ 코드 다운로드 필요(37페이지 참조)
int key = StdIn.readInt();
조건문 if (rank(key, whitelist) = = -1) 로컬 메서드 호출(37페이지 참조)
(27페이지 참조) StdOut.println(key);
}
}
} 시스템에서 인수값
"largeW.txt"을 main()으로 전달
명령어
(45페이지 참조) 파일명(args[0])
% java BinarySearch largeW.txt < largeT.txt
StdOut 499569
(45페이지 참조) 984875 StdIn에서 파일 리디렉션(49페이지 참조)
...
그림 1-2 자바 프로그램의 구조와 명령어 실행 방법
022