//此程序是折半查找的详细算法实现
#include<iostream>
using namespace std;
void CreateData(int data[],int length);//为一个数组赋值
//此函数是折半查找函数。其中 data 是所查寻的数组,length 是数组的长度。x 是所要查找
的数,返回的值是数据 x 在数组中的位置
int Bisearch(int data[],int x,int begin,int last);//折半查找函数,使用过程中只需要给出数组名
字,要查找的数值 x,数组的起始位置 begin 及莫位置即可。
void PrintData(int data[],int length);//输出一个数组的所有元素。
void main()
{
//声明一个数组 data[10],并调用 CreateData()函数为该数组赋值。
int data[10];
CreateData(data,10);
//调用 PrintData()函数输出 data 的值。
PrintData(data,10);
loop:
//定义一个整形变量用于接收用于要查找的数值,并提示用于输入该值
int x;
cout<<"请输入你要查找的值:";
cin>>x;
system("cls");
PrintData(data,10);
//调用函数 Bisearch()函数查找用于输入的 x 在数组中的元素。
int loaction = Bisearch(data,x,0,9);
//首先判断是否查找成功
if( loaction == -1)
{
cout<<"查找失败,没有你要查找的值"<<endl;
}
//当查找成功的情况下输出用户值所在的位置。
else
{
cout<<"你要查找的值"<<x<<"的位置在第:"<<loaction+1<<"个位置!"<<endl;
}
goto loop;
}
//生成数据函数的定义。
void CreateData(int data[],int length)
{
for(int i=0;i<length;i++)
{
评论0