📄 seach.cpp
字号:
/************************************************************************/
/* 基本查找函数 */
/* 陈俊珊 */
/* 2009-3-5 */
/************************************************************************/
#include <iostream>
using namespace std;
/**
*功能:二分查找 (必须是有序的才行)
*参数:len数组长度,t为要找的目标数组,key是要找的
*返回:返回所在位置,找不到返回0
*/
int BSearch(int t[],int len,int key) //找到返回位置,找不到返回0
{
int low=1,high=len,mid=0;
while (low<=high)
{
mid = (low + high)/2;
if (key == t[mid])
return mid;
else if (key < t[mid])
{
high = mid - 1;
}
else
low = mid +1;
}
return 0;
}
/**
*功能:顺序查找
*参数:len数组长度,t查找的数组,key要查找的
*返回:返回所在的下标,没找到返回0
*/
int Search(int t[],int len,int key) //找到返回下标i,没找到返回0
{
int i;
t[0] = key; //首位放空,做为哨兵
for (i=len;t[i] != key;i--);
return i;
}
/**
*功能:二分查找树
*
*/
//int TSearch()
void print(int index,char opt)
{
switch(opt)
{
case 'b':
cout<<"二分查找结果为:"<<index;
break;
case 's':
cout<<"顺序查找结果为:"<<index;
break;
default:
break;
}
cout<<endl;
}
int main()
{
char opt;
int t[]={0,2,3,7,8,11,20,48};
int len = sizeof(t)/sizeof(int);
int k,index;
cout<<"请选择一种查找方式(b|s):";
cin>>opt;
cout<<"请输入要查找的值:";
cin>>k;
switch (opt)
{
case 'b': //二分查找
index = BSearch(t,len,k);
break;
case 's': //顺序查找
index = Search(t,len,k);
break;
default:
break;
}
print(index,opt);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -