|
发表于 2009-11-5 01:12:02
|
显示全部楼层
IP:江苏扬州
你是想用折半查找吧,做了点修改:
#include "stdafx.h"
#include<iostream>
using namespace std ;
int _tmain(int argc, _TCHAR* argv[])
{
int a[11]={11,10,9,8,7,6,5,4,3,2,1};
int i,l,h,m ,n;
l=0;
h=10;
m=(l+h)/2;
cout<<"请输入要查找的数:";
cin>>n;
if((n>a[0])||(n<a[10]))
{
cout<<"无此数。"<<endl;
}
else
{
for(i=0;i<11;i++)
{
if(n==a[m])
{
cout<<"要查找的数为第"<<m+1<<"个元素."<<endl;
break;
}else if(n<a[m])
{
l=m+1;
m=(l+h)/2;
}else
{
h=m-1;
m=(l+h)/2;
}
}
}
return 0;
} |
|