 /**//*
* 二分查找法
*
*/

#include <iostream>
#include <windows.h>

using namespace std;


int count = 0;
 /**//*
输入开始和长度,与长度除以2的元素对比,如果大于则将长度除以2的元素为开始,长度为 原长度除以2
如果长度等于0,或者找到元素则返回;要注意在递归过程中 不要单独使用一个一个的if 最好是 if else
*/
int half(int begin[],int icount,int value);

int main()
  {
cout << "Hello world!" << endl;
int array[100];
for (int i = 0;i < 100;i++)
 {
array[i] = i+100;
cout <<"array["<<i<<"] = "<<array[i] <<endl;
}
int result;
result = half(array,100,99);
cout<< "result = " <<result <<endl;
system("pause");
return 0;
}

int half(int begin[],int icount,int value)
  {
count++;
cout<< "count : " <<count<<endl;
 /**//*
if (value == *begin)
{
return *begin;
}
*/
if (value == begin[icount])
 {
return begin[icount];
}
else if (icount == 0)
 {
return -1;
}
else if (value == begin[icount / 2])
 {
return begin[icount / 2];
}
else if (value < begin[icount / 2])
 {
half(begin,icount / 2,value);
}
else if (value > begin[icount / 2])
 {
half(&begin[icount / 2],icount / 2,value);
}
}

|