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

📄 二分查找.txt

📁 数据查找课程设计
💻 TXT
字号:
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
#include<iomanip.h>
class Erfenchazhao
{
	int i,j,n;
	int a[50];
public:
	Erfenchazhao();
	void shunxu();
	void paixu();
	void display();
};
Erfenchazhao::Erfenchazhao()
{
	n=50;
	srand(int(time(0)));
	for(i=0;i<n;i++)
		a[i]=rand()%25;
}
void Erfenchazhao::paixu()
{
	int i,j;
	int flag=0;
	for(i=1;i<n;i++)
	{ 
		int t;
		for(j=1;j<n;j++)
			if(a[j-1]>a[j])
			{  
				t=a[j-1];
				a[j-1]=a[j];
				a[j]=t;
				flag=1;
			}
			if(!flag) 
				break;
	}
}
void Erfenchazhao::shunxu()
{
	int low=0,high=n-1,mid;
	int key,flag=0,i,j;
	cout<<"请输入要查找的数字:";
	cin>>key;
	cout<<endl;
	while(low<=high)
	{
		mid=(low+high)/2;
		if(a[mid]==key)
		{
			flag=1;
			i=mid;
			j=mid;
			cout<<"你所查找的数据位置为:"<<mid+1<<endl;
			break;
		}
		else if(key>a[mid])
			low=mid+1;
		else
			high=mid-1;
	}	
	if(!flag)
		cout<<"没有所要查找的数据!"<<endl;
	else
	{
		while(i>=0)
		{
			if(a[--i]==key)
				cout<<"你所查找的数据位置为:"<<i+1<<endl;
			else 
				break;
		}
		while(j<=n)
		{
			if(a[++j]==key)
				cout<<"你所查找的数据位置为:"<<j+1<<endl;
			else 
				break;
		}
	}
}
void Erfenchazhao::display()
{
	cout<<"原先数组为:"<<endl;
	for(i=0;i<n;i++)
	{
		cout<<a[i]<<setw(5);
		if((i+1)%5==0)
			cout<<endl;
	}
	cout<<endl;
}
void main()
{ 
	Erfenchazhao pl;
	pl.paixu();
	pl.display();
	pl.shunxu();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -