>  기사  >  컴퓨터 튜토리얼  >  재귀 알고리즘을 사용하여 Java 이진 검색을 구현하는 방법

재귀 알고리즘을 사용하여 Java 이진 검색을 구현하는 방법

WBOY
WBOY앞으로
2024-01-12 20:06:051272검색

Java에서 이진 검색의 재귀 알고리즘을 구현하는 방법

공개 클래스 이진 재귀 검색 {

public static void main(String[] args)은 Java 프로그램의 진입점이자 프로그램 실행의 시작 위치입니다. 이 방법을 사용하면 프로그램의 주요 로직과 기능을 작성할 수 있습니다. 이 메소드는 JVM(Java Virtual Machine)에 의해 호출되고 실행되기 전에 특정 형식으로 정의되어야 합니다. 기본 메소드의 매개변수 목록에서 args는 명령줄 매개변수를 수신하는 데 사용할 수 있는 문자열 배열입니다. main 메소드에 코드를 작성하여 출력, 계산, 루프, 조건부 판단 등 다양한 기능을 구현할 수 있습니다.

//배열을 정의하세요. 이진 검색 배열은 순서가 지정된 배열이어야 합니다!

int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 }; 9개 요소를 포함하는 정수 배열의 선언 및 초기화 문입니다. 각 요소의 값은 1, 3, 5, 7, 9, 11, 13, 15, 17입니다. 이런 방식으로 arr이라는 정수 배열을 만들고 여기에 초기값을 할당합니다. 후속 프로그램에서는 이 배열을 사용하여 검색, 정렬 및 계산과 같은 다양한 작업을 수행할 수 있습니다

//검색 후 반환 값을 수락합니다. 인덱스 값, 그렇지 않은 경우 -1입니다.

//찾기 요소 테스트: 9

int a = 바이너리 검색(arr, 9, 0, arr.length - 1);

System.out.println("검색 중인 숫자의 인덱스 위치: " + a);

}

//매개변수 목록은 검색할 배열, 검색할 숫자, 헤드 인덱스, 테일 인덱스 순서입니다!

public static int bin(int[] arr, int key, int start, int end) // 재귀

{

//들어올 때마다 중간 인덱스 값으로 생성됩니다!

int mid = (별 + 끝) / 2;

찾으려는 숫자가 시작 인덱스보다 작거나 끝 인덱스보다 크거나, 시작 인덱스가 끝 인덱스보다 크면 해당 숫자가 존재하지 않는다는 의미이며 -1이 반환됩니다.

if (키 arr[end] || 시작 > 끝) {

반품 -1;

}

//가운데 값이 검색 중인 숫자보다 작을 경우 헤더 인덱스를 재정의하여 중간 +1 위치로 이동시켜 숫자의 절반이 걸러질 수 있도록 해주세요!

if (arr[mid]

//재귀를 시작하세요!

return binary(arr, key, mid + 1, end) // 배열의 후반부에서 이진 검색을 계속합니다

//그렇지 않고 중간 값이 검색 중인 숫자보다 큰 경우 꼬리 인덱스를 다시 중간 위치인 -1로 이동하여 숫자의 절반을 필터링할 수 있습니다!

} else if (arr[mid] > key) {

//재귀를 시작하세요!

바이너리 반환(arr, key, start, mid - 1);

} 그 외 {

//찾지 못하면 색인으로 돌아갑니다!

중반납;

}

}

}

재귀 알고리즘을 사용하여 Java 이진 검색을 구현하는 방법

전문 프로그래밍 JAVA 언어는 재귀 알고리즘과 1 2 3 4 100 또는 11 13 15

첫 번째 질문:

공개 수업 CalSum {

public static void main(String[] args)은 Java 프로그램의 진입점이자 프로그램 실행의 시작 위치입니다. 이 방법을 사용하면 프로그램의 주요 로직과 기능을 작성할 수 있습니다. 이 메소드는 JVM(Java Virtual Machine)에 의해 호출되고 실행되기 전에 특정 형식으로 정의되어야 합니다. 기본 메소드의 매개변수 목록에서 args는 명령줄 매개변수를 수신하는 데 사용할 수 있는 문자열 배열입니다. Main 메소드에 코드를 작성하여 출력, 계산, 루프, 조건부 판단 등 다양한 기능을 구현할 수 있습니다.

{

CalSum calSum = 새로운 CalSum();

int result = calSum.calculate(100); // calSum 객체의 계산 메소드를 호출하고 매개변수 100을 전달한 후 결과를 결과 변수에 할당합니다.

System.out.println("1+2+3+...+100의 합은 다음과 같습니다." + result);

}

공개 정수 계산(정수)

{

int 결과 = 0;

if(숫자 == 1)

{

결과 = 1;

}

그밖에

{

result = number +calculate(number - 1); 결과는 현재 숫자와 숫자-1의 반환 값을 더한 것입니다. 이 표현식은 재귀 호출이 이루어질 때마다 number가 1이 될 때 재귀가 중지될 때까지 number의 값이 1씩 감소합니다. 재귀 호출의 반환 값은 최종 결과에 지속적으로 누적됩니다. 이런 식으로 시퀀스의 합을 구할 수 있습니다.

}

반품 결과;

}

}

Java의 재귀 및 반복 알고리즘은 무엇입니까

반복은 일반적인 루프입니다.

예: 1에서 10까지 더하기

int 합계=0

for(int i=0;i

sum=sum+i;

}

재귀는 함수가 직접 또는 간접적으로 자신을 호출하는 것을 의미합니다.

예: 옛날 어느 절에 큰 스님과 작은 스님이 있었는데, 큰 스님이 작은 스님에게 이야기를 해달라고 했습니다. 어느 절에서 작은 스님이 큰 스님에게 이야기를 해달라고 했더니, 큰 스님은 옛날에 어떤 절에 큰 스님과 작은 스님이 있었는데, 둘이 매일 같이 불교를 수행하고 공부했다고 말했습니다.

재귀의 특징:

다음 세 가지 조건이 있어야 합니다.

1. 간접적으로나 직접적으로 자신에게 전화하세요.

2. 게임을 플레이할 때 반드시 종료 조건을 설정하세요. 예를 들어 대사님이 입이 마르면 이야기를 듣지 않게 됩니다. 종료 조건을 설정하지 않으면 게임이 무한 루프에 빠질 수 있습니다.

3. (하고 싶은 일) 논리적인 몸체가 있어야 합니다.

public int sum(int x){

if(x

반품x;

}

return x+sum(x-1);

}

int s=10;

int total=sum(s);

이 예에서 sum 함수는 항상 자신을 호출하고 x+sum(x-1)을 반환합니다.

sum에는 종료 조건 x이 있습니다.

최종 결과는 10+9+8+7+... 1

을 반환하는 것입니다.

많은 경우 반복과 재귀 모두 동일한 기능을 달성할 수 있지만 반복이 완료할 수 없는 일부 기능이 있습니다. 또한 재귀 코드는 더 간결하며 재귀를 능숙하게 사용하면 코드 품질을 향상시킬 수 있습니다.

위 내용은 재귀 알고리즘을 사용하여 Java 이진 검색을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제