欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言:编写一个折半查找函数

程序员文章站 2022-04-14 09:00:54
/*先把中间元素找到,寻找的元素在中间元素左边, 则小于中间元素,改变right。 再继续折半找中间元素寻找*/ #include #include<...
/*先把中间元素找到,寻找的元素在中间元素左边,
则小于中间元素,改变right。
再继续折半找中间元素寻找*/
#include<stdio.h>
#include<string.h>
int zheban(int x,char arr[],int left,int right)
{
 while(left<=right)
 {
  int mid=left-(left-right)/2;
  if(x > arr[mid])
  {
   left=mid+1; 
  } 
  else if(x < arr[mid])
  {
   right=mid-1;
  }
  else
  {
   return 1;
  }
 }
 return 0;
}
int main()
{
 int mid=0;
 char arr[]={1,3,4,6,7,8,56,67,78};
 int ret=0;
 int size=0;
 int num=0;
 size=strlen(arr);
 ret=zheban(5,arr,0,size-1);
 if(ret==0)
 {
  printf("not exsit");
 }
 else
 {
  printf("%d",arr[mid]);
 }
 return 0;
}