Nearth==>分治策略004/二分查找算法

运行结果:


代码学习:

#include<iostream>
using namespace std;
#define MAX 100
int arr[MAX]={0};
void halfFind(int* arr,int n,int findData){
	int left=1;
	int right=n;
	while(left<=right){
	int middle=left+right/2;
	if(findData==arr[middle]){
	cout<<"你要找的数==>"<<findData<<"在第==>"<<middle<<"个位置上"<<endl;
	return;
	}
	if(findData>arr[middle]){
	left=middle+1;
	}
	else{
	right=middle-1;
	}
	}
	cout<<"没有找到你要找的数据·····"<<endl;
}
int main(){
	cout<<"*************二分查找算法**************"<<endl;
	cout<<"_______________________________________"<<endl;
	int n;
	cout<<"请输入你所查找数据的数组的长度为:";
	cin>>n;
	cout<<"请按提示输入数组数据===>"<<endl;
	for(int i=1;i<=n;i++){
	cout<<"第"<<i<<"个数:";
	cin>>arr[i];
	cout<<endl;
	}
	cout<<"数据输入完毕·····"<<endl;
	int findData;
	cout<<"请输入你要查找的数:";
	cin>>findData;
	halfFind(arr,n,findData);
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字界陈冠希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值