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

📄 seach.cpp

📁 一些常用的代码
💻 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 + -