📄 l9_7.cpp
字号:
#include <iostream.h>
template <class T>
int BinSearch(T list[], int n, T key);
void main()
{
int a[10] = {2, 3, 7, 12, 16, 35, 67, 68,90, 98};
char c[11] = "abcdhijklm";
char c1='f';
int i = BinSearch(a, 10, 35);
int j = BinSearch(a, 10, 36);
int k = BinSearch(c, 10, 'f');
int l = BinSearch(c, 10, 'k');
cout << i <<"," << j <<"," << k <<"," << l << endl;
}
template <class T>
int BinSearch(T list[], int n, T key)
{
int mid, low, high;
T midvalue;
low=0;
high=n-1;
while (low <= high) // low <= high表示整个数组尚未查找完
{
mid = (low+high)/2; // 求中间元素的下标
midvalue = list[mid]; // 取出中间元素的值
if (key == midvalue)
return mid; // 若找到,返回下标
else if (key < midvalue)
high = mid-1; // 若key < midvalue将查找范围缩小到数组的前一半
else
low = mid+1; // 否则将查找范围缩小到数组的后一半
}
return -1; // 没有找到返回-1
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -