我在寫一個遞歸二進制搜索程序。這是迄今爲止我所擁有的。這個程序的參數是它包含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 */
「該項目工程」 - 除非你有一個完全不同的概念,「搜索」比其他人。 「它不會遞歸地搜索函數」 - 僅僅因爲它不搜索;它顯然是遞歸的。 「我不認爲它使用二分搜索」 - 你不覺得?你是否在課堂上跳過討論,沒有閱讀關於該主題的教科書?即使如此,通過谷歌提供的引用googol。 「二進制排序」 - 等待,現在你想排序?排序,搜索和打印出所有的值都是三種不同的東西。 –