二分查找法(C语言实现)

本文介绍了如何使用C语言实现二分查找法,包括核心算法逻辑和示例代码。鼓励读者留言或私信提问,对于理解二分查找有所帮助,希望读者能点赞支持。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <stdlib.h>

int BinarySearch(int arr[],int n,int key)
{
    int low,hight,middle;
    low = 0;
    hight = n - 1;
    while(hight >= low){
        middle = (low + hight) / 2;
        if(key == arr[middle]){
            return (middle + 1);
        }
        if(key > arr[middle]){
            low = middle + 1;
        }
        if(key < arr[middle]){
            hight = middle - 1;
        }
    }
    return -1;
}
int main()
{
    int n,i,key,l,num;
    printf("请输入数据的个数:");
    scanf("%d",&n);
    printf("\n");
    int arr[n];
    printf("请按从小到大的顺序输入您的数据(空格隔开):");
    for(i = 0;i < n;i ++){
        scanf("%d",&arr[i]);
    }
    printf("\n");
    while(1){
        printf("请在下面输入您想要的操作\n\n");
        printf("1.查数!\n\n");
        printf("2.退出!\n\n");
        printf("请输入:");
        scanf("%d",&num);
        printf("\n");
        switch(num){
            case 1:
                {
                printf("请输入您想查找的数:");
                scanf("%d",&key);
                printf("\n");
                l = BinarySearch(arr,n,key);
                if(-1 == l){
                    printf("没找到哦!");
                    printf("\n\n");
                }else{
                    printf("%d的值在第%d位置上!",key,l);
                    printf("\n\n");
                }
                break;
            }
            case 2:
                {
                    return;
            }
        }
    }
}

比较简单,小伙伴有什么不懂可以在下边留言或私信我,
对您有帮助点个赞再走吧

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值