順序付けられた配列内の要素の添え字を検索します->ハーフ検索アルゴリズム/バイナリ検索アルゴリズム(配列要素の数が多い場合の検索に適用可能)

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <string.h>

int main()
{
int k;
int a [] = {1,2,3,4,5,6,7,8,9,10};
int sz = sizeof(a)/ sizeof(a [0]) ; //要素の数を数えるintleft
= 0; //左添え字
intright = sz-1; //右添え字
scanf( "%d"、&k);

while (left<=right)
{
    int mid = (left + right) / 2;

    if (a[mid] > k)
    {
        right = mid - 1;
    }
    else if (a[mid] < k)
    {
        left = mid + 1;
    }
    else
    {
        printf("下标是:%d\n", mid);
        break;
    }
}
if (left > right)
{
    printf("找不到此数\n");
}
return 0;

}

おすすめ

転載: blog.51cto.com/15068346/2586309