您的位置:首页 > 理论基础 > 数据结构算法

小蚂蚁学习数据结构(31)——折半查找法

2016-02-06 21:03 483 查看
终于看到了查找了,真是不想看了,我都快吐了,坚持一下,查找和排序看完就结束了,加油。

折半查找法

# 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息