Definir:
En cierto sentido, se debe ejecutar una vez para obtener los subíndices restantes (principio y final) / 2 en una cantidad intermedia, y luego comparar para encontrar el número que desea encontrar. Tal algoritmo simplificará el proceso de ejecución N veces.
Escrito en la portada: Soy solo un pequeño blanco que constantemente se ejercita en el blog, esperando gustar a todos, si hay algún problema, podemos comunicarnos y avanzar juntos.
A continuación damos un ejemplo sencillo para mostrar mis pensamientos. ¡Espero que los lectores puedan entender el significado del código! ! ! ! ! ! !
#include <stdio.h> #include <string.h> #include <Windows.h> #include <stdlib.h> int main () { int a, sz, left, right, mid; int num [] = { 1,2,3,4,5,6,7,8,9,10}; printf ("Introduzca un número: \ n"); scanf ("% d", & a); sz = sizeof (num) / sizeof (num [0]) - 1; // Calcula el número de matrices left = 0; // Define los valores de subíndice inicial y final de la matriz right = sz-1; while (left <= right) / / Loop body loop, need Los lectores pueden comprender por sí mismos { mid = (left + right) / 2; if (num [mid]> a) { right = mid-1; } más si (num [mid] <a) { left = mid + 1; } else { printf ("Lo encontré, el subíndice es:% d", mid); break; } } if (left> right) { printf ("Lo siento no encontrado \ n"); } return 0; }