小蚂蚁学习数据结构(31)——折半查找法
小蚂蚁学习数据结构(31)——折半查找法
嗜学如命的小蚂蚁 发表于2年前
小蚂蚁学习数据结构(31)——折半查找法
  • 发表于 2年前
  • 阅读 106
  • 收藏 6
  • 点赞 1
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 折半查找法

    终于看到了查找了,真是不想看了,我都快吐了,坚持一下,查找和排序看完就结束了,加油。

    折半查找法

# include <stdio.h>

int bin_search( int * str, int n, int key )
{
	int low, high, mid;
	
	low = 0;
	high = n - 1;
	
	while( low <= high )
	{
		mid = ( low + high )/2;
		if( str[mid] == key )
		{
			return mid;
		}
		if( str[mid] < key )
		{
			low = mid + 1;
		}
		if( str[mid] > key )
		{
			high = mid - 1;
		}
	}
	
	return -1;
}

int main( void )
{
	int num[11] = {1, 2, 4, 5, 32, 57, 58, 62, 72, 86, 90};
	int n, addr;
	
	printf( "请输入你要查找的关键字:\n" );
	scanf( "%d", &n );
	
	addr = bin_search( num, 11, n );
	
	if( -1 != addr )
	{
		printf( "该关键字的位置是:%d\n", addr );
	}	
	else
	{
		printf( "没有找到关键字\n", addr );
	
	}
	
	return 0;
}
/*
	在VC++6.0中输出的结果是:
	===================================
	请输入你要查找的关键字:
	86
	该关键字的位置是:9
	
	请输入你要查找的关键字:
	53
	没有找到关键字
	===================================
	结论:
		关键字需要是有序排列。
*/


    学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog



共有 人打赏支持
粉丝 132
博文 161
码字总数 100864
×
嗜学如命的小蚂蚁
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: