재귀적인 이진 검색 프로그램을 작성하고 있습니다. 여기에 내가 지금까지 가지고있는 것이있다. 이 프로그램의 매개 변수는 2 개의 함수, 주 함수 및 전달 된 값에 대해 2 진 정렬을 수행 할 두 번째 함수를 포함한다는 것입니다.내 바이너리 검색 프로그램을 재귀 적으로 개선 할 수 있습니까?
/* ex06_18.c */
#include <stdio.h>
#define SIZE 10
/* function prototype */
void someFunction(const int b[], int startIndex, int size);
/* function main begins program execution */
int main(void)
{
int a[ SIZE ] = { 8, 3, 1, 2, 6, 0, 9, 7, 4, 5 }; /* initialize a */
printf("Answer is:\n");
someFunction(a, 0, SIZE);
printf("\n");
return 0; /* indicates successful termination */
}
void someFunction(const int b[], int startIndex, int size)
{
if (startIndex < size) {
someFunction(b, startIndex + 1, size);
printf("%d ", b[ startIndex ]);
} /* end if */
} /* end function someFunction */
"프로그램이 작동합니다"- 다른 사람보다 "검색"이라는 근본적으로 다른 개념이 없으면 않습니다. "함수를 재귀 적으로 검색하지 않습니다"- 검색하지 않기 때문에; 그것은 명백하게 재귀 적입니다. "이진 검색을 사용한다고 생각하지 않습니다."- 생각하지 않습니까? 수업에서 토론을 건너 뛰고 해당 주제에 대한 교과서를 읽지 않으셨습니까? 그래도 Google을 통해 참조 할 수있는 googol이 있습니다. "이진 정렬"- 잠깐, 이제 정렬하고 싶습니까? 정렬, 검색 및 모든 값을 인쇄하는 것은 세 가지 다른 작업입니다. –