Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1306828
  • 博文数量: 213
  • 博客积分: 7590
  • 博客等级: 少将
  • 技术积分: 2185
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-31 17:31
个人简介

热爱开源,热爱linux

文章分类

全部博文(213)

文章存档

2018年(4)

2017年(1)

2015年(1)

2014年(5)

2013年(2)

2012年(2)

2011年(21)

2010年(82)

2009年(72)

2008年(23)

分类: LINUX

2008-11-15 20:38:44

学完C语言有好长时间了,我觉得应该把C中一些常用的函数总结一下,这即是对知识的恐固,也能在其中发现自己的不足.

以下代码实现
二分法查找功能:


#include
#define SIZE 30
int binarySearch( const int [], int, int, int );
 
void main()
{
  int a[ SIZE ], i, key, result;
 
  for ( i = 0; i <= SIZE - 1; i++ )
        a[ i ] = 2 * i+1;
 
  printf( "请输入1个自然数: " );
  scanf( "%d", &key );
 
  result = binarySearch( a, key, 0, SIZE - 1 );
 
  if ( result != -1 )
     printf( "\n 关键字 %d 位于元素 %d\n", key, result );
  else
     printf( "\n 没有找到关键字%d\n", key );
}
 
int binarySearch( const int b[], int searchKey, int low, int high )
{
   int middle;
 
   while ( low <= high ) 
   {
      middle = ( low + high ) / 2;
 
      if ( searchKey == b[ middle ] )
           return middle;
      else if ( searchKey < b[ middle ] )
           high = middle - 1;
      else
           low = middle + 1;
   }
 
  return -1;   
}

阅读(2971) | 评论(0) | 转发(0) |
0

上一篇:起泡法排序

下一篇:java正则表达式

给主人留下些什么吧!~~