|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int search(int data[], int first, int last, int number)
- {
- int mid = (last + first) / 2;
- if(data[mid] == number){
- printf("%d %d %d %d\n", mid, data[mid], first, last);
- return mid;
- }
- if(first >= last){
- return -1;
- }
- if(data[mid] > number){
- search(data, first, mid-1, number);
- }
- if(data[mid] < number){
- search(data, mid+1, last, number);
- }
- }
- int main()
- {
- int data[] = {0, 1, 2, 2, 4, 4, 5, 8, 9, 9};
- int len = sizeof(data) / sizeof(data[0]);
- int x = search(data, 0, len-1, 5);
- printf("%d\n", x);
- system("pause");
- return 0;
- }
复制代码
main中打印的值是8,然后在search函数中打印的Mid的值是6,用的是code::blocks编译器
|
|