顺序查找与折半查找

核能气质少年 提交于 2019-12-17 04:25:08

顺序查找(线性查找)

依次进行比较,相等即查找成功

int LinSearch(long num[],long x,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		if(num[i]==x) return i;//找到时返回下标位置
	}
	return -1;//找不到时返回-1 
}

折半查找(二分查找)

一直选择居中间位置的数与所要查找的数进行比较
只能在有序的数据中进行查找


int BinSearch(long num[],long x,int n)
{
	int low,high,mid;
	low=0; high=n-1;
	while(low<high)
	{
		mid=(high+low)/2;
		if(x>num[mid])//两个数作比较
		low=mid+1;
		else if(x<num[mid])//两个数作比较 
		high=mid-1;
		else return mid;//直接找到所要查找的数
	}
	return -1;//找不到则返回-1
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!