用户登录
用户注册

分享至

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

  • 作者: 我就瞅你咋滴
  • 来源: 51数据库
  • 2021-08-24
/*先把中间元素找到,寻找的元素在中间元素左边,
则小于中间元素,改变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;
}

 

软件
前端设计
程序设计
Java相关