算法:折半查找或二分查找

来源:互联网 发布:python实现自动签到 编辑:程序博客网 时间:2024/05/17 08:14
#include <iostream>using namespace std;int BinarySearch(int *a, const int x, const int n);  // 二分查找即折半查找int BinSearch(int *a, const int x, const int n);  // 这是函数的声明,int main(){int t[] = { 1,2,3,4,5,6,7,8,9,12,13,14,15,10 };int tem = 12;int 结果;//结果 = BinarySearch(t,tem,15);结果 = BinSearch(t,tem,15);if(结果 < 0)cout << "没有找到:" << endl;else cout << "在t[" << 结果 << "]找到:" << tem << endl;return 0;}int BinSearch(int *a, const int x, const int n){int left = 0, right = n;while(left <= right){    int middle = (left + right) / 2;if(a[middle] > x)right = middle - 1;else if(a[middle] < x)left = middle + 1;else return middle;}return -1;}int BinarySearch(int *a, const int x, const int n){int low,high,mid;low = 0, high = n-1;while(low <= high){mid = (low + high) / 2;if(a[mid] == x)return mid;else if (a[mid] > x)high = mid - 1;else if(a[mid] < x)low = mid + 1;}return -1;}

0 0
原创粉丝点击