¿Por qué la búsqueda binaria se llama búsqueda binaria?

9

Escuché varias explicaciones posibles, así que me gustaría una referencia confiable.

Actualización 05.19: Estoy interesado en la pregunta porque uno de mis estudiantes escribió en su tesis que el nombre proviene de la explicación a continuación (1). Hasta ahora pensé / escuché que proviene de la explicación (2). Me sentiría mal tanto por dejar lo incorrecto en su tesis como por decirle que lo elimine si fuera correcto.

(1) Considere la búsqueda de un número entero en el intervalo . Podemos encontrarlo usando n preguntas preguntando en el paso i el binario i t h[0 0,2norte-1]norteyoyoth dígito del número.

(2) Si tenemos un espacio de búsqueda con elementos, podemos encontrar un elemento desconocido mediante preguntas que dividen repetidamente la parte restante del espacio en dos2norte .

Y sí, sé que (2) puede dar el mismo algoritmo que (1), pero ese no es el punto aquí. (2) también se puede aplicar para problemas más generales.

domotorp
fuente
1
Además, tenga en cuenta que la pregunta solicita referencias. No responda diciendo que se debe a tal o cual razón sin proporcionar una fuente confiable.
David Richerby
1
@DavidRicherby, No, la curiosidad no es suficiente motivación para exigir una referencia "confiable". La curiosidad sería una motivación suficiente para preguntar "¿Por qué la búsqueda binaria se llama búsqueda binaria?", Pero no es razón suficiente para exigir una fuente confiable / de referencia, y no es razón suficiente para decir "no responda con una explicación; yo solo quieren fuentes confiables ". Si el OP se encontró con múltiples explicaciones conflictivas, entonces el OP debería informarnos sobre ellas en la pregunta (tenga en cuenta que la pregunta Math.SE no condujo a explicaciones conflictivas).
DW
3
Creo que deberías comenzar dando las explicaciones que tienes. Podríamos tener una idea sobre la confianza que deberían obtener. Y podría ser útil si proporcionó su propia definición, preferiblemente precisa, de lo que llama búsqueda binaria, de modo que podamos estar seguros de hablar del mismo concepto o, alternativamente, dar una referencia a dicha definición.
babou
2
Volumen 3 de Knuth TAoCP, ¿alguien? El mío está en la oficina ...
Hendrik Jan
3
Relacionado: hsm.stackexchange.com/questions/2200/…
Kyle Jones

Respuestas:

1

La explicación (2) es una buena explicación.

(2) es la mejor explicación de los dos, porque se aplica generalmente a todos los usos de la búsqueda binaria, no solo a una instancia específica. (1) no es una forma irracional de pensarlo, simplemente no es tan general o completo como (2).

No creo que deba sentirse obligado a exigir al alumno que corrija esta afirmación. No sería vergonzoso si un estudiante dio una explicación (1) en su tesis, por lo que no necesita sentirse mal. Pero si quiere enseñarles algo, puede contarles sobre la explicación (2) y sobre cómo la búsqueda binaria es más general y por qué el nombre "búsqueda binaria" también es razonable para el algoritmo general. Pero es un punto menor y no es algo que consideraría problemático o vergonzoso si dejaran las cosas como están.

DW
fuente
sin referencias! parece más una pregunta histórica :(
vzn
1

Según Wikipedia, la búsqueda binaria se refiere a la búsqueda en una matriz de valores ordenados.

El concepto más general de dividir y conquistar la búsqueda dividiendo repetidamente el espacio de búsqueda se llama búsqueda dicotómica (literalmente: "eso se divide en dos"). El uso de la dicotomía se puede considerar en otros contextos, siempre y cuando tenga algo que dividir. En realidad, es la primera expresión que aprendí (en la escuela secundaria, creo, y eso fue hace mucho tiempo), incluso en los casos en que es posible que desee llamarlo binario.

Afaik, "dicotómico" no implica que las dos partes sean (casi) iguales.

No sé que el binario está reservado para buscar en un espacio de tamaño 2norte .

Dicotómico es claramente el término más general, pero puede sonar pedante para algunos que, en cambio, podrían usar incorrectamente el binario.

Su ejemplo (1) está extrañamente enunciado, ya que uno no pide conscientemente dígitos binarios, sino más bien una comparación con la mediana de un intervalo. Pero podría calificar como binario.

Su ejemplo (2) no está claro. Solo dividir en dos debería llamarse dicotómico. Ahora, como parece hipotetizar (extrañamente) una forma de hacer 2 partes iguales, no estoy seguro.

Pero un juego de adivinanzas, en el que las personas hacen preguntas que responden sí o no, es claramente dicotómico.

Mi propia suposición, no se da referencia:

La expresión original era probablemente "dicotómica", pero con la popularidad de los sistemas binarios, la computadora binaria, etc., el término "binario" se hizo más popular.

Otro factor que puede haber jugado un papel importante es que la búsqueda binaria (así como la dicotómica) se basa en elecciones binarias. Ahora existe la expresión " elección dicotómica ", pero se usa mucho menos que " elección binaria ", que aparece aproximadamente 6 veces más a menudo en la web.

Entonces esto puede haber influido en eso. Debemos recordar que, aunque estamos inmersos en gran medida en el número binario (es decir, nosotros, informáticos), la mayoría de las personas no están y no están preocupadas por los números binarios, sino que hablarán fácilmente de una elección binaria. Es cierto que la búsqueda binaria es un tema para los informáticos, pero a falta de una referencia confiable de lo contrario, no creo que provenga de números binarios de ninguna manera directa.

babou
fuente
"Según Wikipedia, la búsqueda binaria se refiere a la búsqueda en una matriz de valores ordenados". - Bueno, no es así como leo Wikipedia. Si Wikipedia dice que tiene que estar en una matriz para contar bien como búsqueda binaria, entonces, creo que Wikipedia es discutible sobre esto, pero el artículo de Wikipedia no parece decir eso. Más abajo, el artículo de Wikipedia dice que la búsqueda binaria "permite buscar un punto en el argumento de cualquier función monotónica, en el que la función alcanza el valor arbitrario", que no es buscar en una matriz.
DW
"El concepto más general de dividir y conquistar la búsqueda al dividir repetidamente el espacio de búsqueda se llama búsqueda dicotómica" - Eso no coincide con mi propia experiencia. Rutinariamente escucho esto llamado búsqueda binaria.
DW
@DW Como te dije antes, mi memoria es poco confiable. Pero la búsqueda binaria, o incluso dividir y conquistar, es una terminología algorítmica que nos llegó con las computadoras. Pero creo que no había muchas computadoras alrededor cuando escuché por primera vez sobre la búsqueda dicotómica. Entonces, una buena referencia impresa sería mucho mejor que mi (f) memoria enferma. Con respecto a wikipedia, no leí todo el artículo. Básicamente no pensé que obtendría una respuesta definitiva ... y tengo algunas dudas de que haya una. La idea es general, la terminología es agradable y debe haber sido adaptada por cada uno a cualquier problema en cuestión.
babou
1

Traté de buscar la referencia de Mauchly citada por Knuth, pero mi biblioteca parece haber perdido su copia.

Mientras tanto, considere las siguientes citas tempranas para "búsqueda binaria":

  • Halpern, Mark. " Tablas de ancho variable con función de búsqueda binaria " . Comunicaciones del ACM 1.2 (1958): 1-4.

    La familia de subrutinas descritas en este informe se diseñó para crear, buscar y mantener tablas que contengan entradas de diferentes longitudes y, sin embargo, sean susceptibles de búsqueda por partición o búsqueda "binaria".

  • Nagler, H. " Una estimación de la eficiencia relativa de dos métodos de clasificación internos " . Comunicaciones de la ACM 3.11 (1960): 618-620.

    Este informe se refiere al IBM 705, modelos I y II. Es un estudio del tiempo de máquina requerido por dos métodos de clasificación internos, la fusión bidireccional convencional y una forma de búsqueda binaria, que se debe a D. Mordy, de IBM Corporation.

  • Petersen, TL REINTENTAR EL PROGRAMA DE SÍNTESIS DE VEHÍCULOS. No. STL / TR-60-0000-09103 (enlace pdf) . TRW SPACE TECHNOLOGY LABS LOS ANGELES CA, 1960.

    Ahora se debe encontrar el valor de para el cual g ( V 0 ) = 0 . Se ve fácilmente que gV0 0sol(V0 0)=0 0sol(0 0)=K3-1sol(K1)=-1V0 0K1K3>1sol(V0 0)V0 0V0 00,01

Notaré cómo la primera cita de 1958 usa comillas alrededor de "binario", pero en la tercera cita en 1960, se menciona una búsqueda binaria sin ninguna descripción o explicación adicional. La alusión a "buscar por partición" tiende a sugerir que la explicación 2) está más cerca, pero se requiere una verificación adicional.

mhum
fuente