//有序数折半查找(输入的数据需要从小到大,也可以随便输入数据但是需要先排序再查找)
#include "stdafx.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
int i,m,a[4];
cout << "Please input Number:/n";
for( i = 0 ; i < 4 ; i++)
{
cout << "a[" << i <<"]=";
cin >> a[i];
}
cout << "输入要查找的数据:/n";
cin >> m;
//输出数组
cout << "输出数组:/n";
for( i = 0 ; i < 4 ; i++)
{
cout << a[i] <<'/t';
if((i+1)%2==0)
{cout << '/n';}
}
int left=0,right=3,n=0,mid;
while(left < right)
{
mid = (left+right)/2;
if(a[mid] == m)
{
cout << "要查找的元素是:/n";
cout << "a[" << mid << "]=" << m << '/n';
n++;
}
if(a[mid] < m)
{
left = mid +1;
}
else
{
right = mid -1;
}
if(n == 0)
{
cout << "要查找的元素不存在/n";
}
}
return 0;
}
有序数折半查找
最新推荐文章于 2023-11-01 19:42:07 发布