钢结构设计规范.pdf:编写二分查找函数,并在数组{4,7,8,10,14,21,22,36,62,77,81,91}中进行测试

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 18:39:23

/* 要改变数组只需要在程序中改变iNum后的部分就可以了 */
#define ERROR -1
#include <iostream.h>
#include <stdio.h>

int iNum[12] = {4,7,8,10,14,21,22,36,62,77,81,91};

/* 递归查找 */
int Search(int Front, int End, int Target)
{
int iMiddle = (Front + End)/2;
if (iNum[iMiddle] == Target)
return iMiddle;
if (Target < iNum[Front] || Target > iNum[End])
return ERROR;
if (Target < iNum[iMiddle])
return Search(Front, iMiddle, Target);
if (Target > iNum[iMiddle])
return Search(iMiddle, End, Target);
}

void main(void)
{
int Result;
int iTarget;
int iLength = sizeof(iNum) / sizeof(int);

cout<<"请输入你要查找的数:";
cin>>iTarget;
Result = Search(0, iLength - 1, iTarget);
if (Result == ERROR)
cout<<iTarget<<"在数列中不存在!";
else
cout<<iTarget<<"在数列第"<<Result + 1<<"个.";
}

这么简单呢?