A - Encuentra los datos experimentales de cuatro estructuras: búsqueda binaria

Descripción

En una creciente secuencia dada de elementos que no se repite, las mismas palabras clave para encontrar los elementos de un dado, si hay para encontrar la ubicación de la salida, no hay salida de -1.
entrada

Un conjunto de datos de entrada, los datos de entrada es la primera línea de entrada de los dos primeros números enteros positivos n (n <= 10 ^ 6 ) , y m (m <= 10 ^ 4 ), n es el número de elementos de datos en la matriz, seguido de la entrada continua de n un entero positivo, el número de entrada de datos para asegurar que la columna se incrementa.
A continuación, introduzca la línea m m a buscar palabras clave Clave de
la salida

Si la palabra clave se puede encontrar igual al elemento clave en una secuencia dada, entonces la secuencia de bits de salida (números empiezan con 0), de lo contrario la salida -1.
muestra

Entrada

8 3
4 6 8 9 13 20 21 22
6
8
17
Salida

1
2
-1

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int a[1000010];
int Midfind(int k,int l,int r)
{
    int mid;
    while(l<=r)
    {
        mid = (l+r)/2;
        if(k>a[mid])
            l = mid+1;
        else if(k<a[mid])
            r = mid-1;
        else
            return mid;
    }
    return -1;
}
int main()
{
    int n,m,k;
    scanf("%d %d",&n,&m);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(int i=0;i<m;i++)
    {
        scanf("%d",&k);
        int p = Midfind(k,0,n-1);
        printf("%d\n",p);
    }
    return 0;
}

Publicados 176 artículos originales · ganado elogios 7 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/Fusheng_Yizhao/article/details/104922237
Recomendado
Clasificación