Encuentre el subíndice de un elemento en una matriz ordenada -> el algoritmo de media búsqueda / algoritmo de búsqueda binaria (aplicable a la búsqueda cuando el número de elementos de la matriz es grande)

#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]) ; // Cuente el número de elementos
int left = 0; // subíndice izquierdo
int right = sz-1; // subíndice derecho
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;

}

Supongo que te gusta

Origin blog.51cto.com/15068346/2586309
Recomendado
Clasificación