binsearch.cpp

来自「数据结构查找算法中的二分查找算法」· C++ 代码 · 共 55 行

CPP
55
字号

////
#include<stdio.h>   
    
#include "binsearch.h"

int binsearch(sqtable R,float K,float AD)//二分查找法   
{   
  int   low=0,mid,hig=R.n;//置查找区间初值
  float H;
  while(low<=hig)//区间长度不为0时继续查找   
  {   
  mid=(low+hig)/2;//找出区的中间位置 
  
  H = K-R.item[mid].key;
  if(H > 0)
  {
	  H = H;
  }
  else
  {
	  H = -H;
  }

  if(H<= AD && H >= -AD)
  {
	  return mid;//找到则返回位置MID
  }
  else if(K<R.item[mid].key)
  {
	  hig=mid-1;//缩小区间
  }
   else
   {
	   low=mid+1;//缩小区间  
   }
  }   
    return 0;   
}   

void main()
{   
  int i;
  sqtable a;   
  for(i=0;i<MAX;i++)//初始化查找表
  {
  //scanf("%d",&(a.item[i].key));
  a.item[i].key = i/(MAX - 1.0f);
  }

  for(i=0;i<MAX;i++)
	printf("Item%d is %f\n", i, a.item[i].key);
  a.n=MAX-1;   
  printf("Result is %d\n",binsearch(a,0.34,0.0101));
}

⌨️ 快捷键说明

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