一、二分法
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int bin_search(int* a, int n, int x) {
int left = 0, right = n-1;
while (left <=right) {
int mid = (left + right) / 2;
if (a[mid] > x) right = mid-1;
if (a[mid] < x) left = mid + 1;
if (a[mid] == x) return mid;
}
return -1;
}
int main()
{
int a[5]= { 1,2,3,4,5 };
int key;
int result;
cout << "请输入你要查找的值" << endl;
cin >> key;
result = bin_search(a, 5, key);
if (result != -1)
cout << "下标为:" << result << endl;
else
cout<<"没有查到该数!!!" << endl;
return 1;
}
二、运行结果