⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l9_7.cpp

📁 《C++程序设计教程》电子教案及例题源码
💻 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 + -