배열 내부에서 가장 작은 숫자를 찾는 다음 프로그램을 이해하는 데 도움이 필요합니다. 재귀에서 문제를 기본으로 나눌 것을 알고 있습니다. 재귀를 끝내는 작은 경우와 결국 초기 기본 경우로 성장하는 작은 단계로 진행됩니다.재귀를 사용하여 배열의 최소값을 찾는 프로그램 이해하기
인덱스가 배열의 마지막 위치에 도달 할 때마다 기본 대소 문자가 충족된다는 것을 알고 있습니다. 필자는 다음 프로그램에서이 방법이 배열 전반에 걸쳐 계속해서 진행되도록하는 방법을 실제로 이해하지 못합니다.
첫 번째 값을 확인한 후 중지하는 대신 전체 배열의 값을 계속 확인하는 이유는 무엇입니까? 그것은 바로이 처음 반환하지 않는 이유를
public static double min(double[] elements, int index) {
if (index == elements.length - 1) {
return elements[index];
}
double val = min(elements, index + 1);
if (elements[index] < val)
return elements[index];
else
return val;
}
이 두 번째 값이 첫 번째보다 작은 어떤 경우? –
디버거에서 해당 코드를 실행하려고 시도 했습니까? 또는 펜과 종이를 사용합니까? – GhostCat