// 使用 二分法 折半查找,每次查找少一半数据,效率高
#include <stdio.h>
int subscript(char arr[], int x, int y)
{
    int left = 0;
    int right = x - 1;
    while (left <= right)
    {
        int mid = left + (right - left) / 2;
        if (arr[mid] < y)
        {
            left = mid + 1;
        }
        else if (arr[mid] > y)
        {
            right = mid - 1;
        }
        else
        {
            return mid;
        }
    }
    return -1;
}
//输入:数组,数组长度,6
//返回:6的下标,   无则-1
int main()
{
    int k = 6;
    char arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
    int sz = sizeof(arr1) / sizeof(arr1[0]);
    printf("数组元素个数%d\n", sz);
    int res = subscript(arr1, sz, k);
    printf("6的下标:%d\n", res);
    return 0;
}
![]()