简单二分查找

本文详细介绍了二分查找算法的基本思想及其实现过程。通过一个具体的示例程序,演示了如何在一个升序排列的数组中查找指定数值。文章还提供了完整的 C 语言代码,并解释了每一步的操作逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       二分查找又称对半查找。它的基本思想是假定数据是按照升序排列的,对于给定值K,从序列的中间位置开始比较,如果当前位置值等于K,则查找成功;否则K<当前值,则在当前值前半段继续查找,如果K>当前值,则在当前值后半段继续查找,直到查到到K,否则继续查找。

#include <stdio.h>

#define N 10

int main ()

{

   int k,i;

   int table[N]={0,2,4,6,8,10,12,14,16,18};

   int mid=0,left=0,right=N-1;

   int find=0                                           //如果找到则赋值1,如果找不到则赋值0

   printf("请输入要找的数:");

   scanf("%d",&k);

   while(!find&&left<right)                       //查找数

   {

      mid=(left+right)/2;

      if (k==table[mid])

          find=1;                                       //查找成功

          else if (k<table[mid])

                    right=mid-1;                      //进入前半段查找

                 else left=mid+1;                   //进入后半段查找   

   }

   if (find==1)

      printf("%d 在 table[%d]中\n",k,mid);

   else

      printf("没有找到数%d\n",k)

  return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值