查看: 109|回复: 0

C语言:二分查找

[复制链接]

3

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-11-30 11:28:21 | 显示全部楼层 |阅读模式
#include <stdio.h>int binary_search(int a[], int k, int s){        int left = 0;        int right = s - 1;        while (left <= right)        {                int mid = (left + right) / 2;                if (k < a[mid])                {                        right = mid - 1;                }                else if (k > a[mid])                {                        left = mid - 1;                }                else                {                        return mid;                }        }        return -1;}void main(){        int arr[] = { 1,2,3,4,5,6,7,8,9,10 };        int key = 7;        int sz = sizeof(arr) / sizeof(arr[0]);        int ret = binary_search(arr, key, sz);        if (ret == -1)        {                printf("找不到");        }        else                printf("找到了,下标是:%d\n", ret);        return 0;}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表