<filename>aula06/binarySearch/binarySearch.py
'''ALUMNA: <NAME>
   EJERCICIO 00: BINARY SEARCH'''

# DESCRIPCION: IMPLEMENTACION DE LA FUNCION BINARY SEARCH, LA FUNCION RECIBE UN ARRAY Y UN ELEMENTO A BUSCAR, LA FUNCION RETORNA EL INDICE DEL ELEMENTO QUE SE ESTA BUSCANDO

def binarySearch(array, target):
    L = 0                         # L = LIMITE INFERIOR
    R = len(array) - 1            # LIMITE SUPERIOR
    while (L <= R):               # SI EL LIMITE INFERIOR ES MENOR O IGUAL AL LIMITE SUPERIOR
        mid = L + (R - L) // 2    # SE CALCULA EL INDICE MEDIO
        if array[mid] == target:  # SI EL VALOR DEL INDICE MEDIO ES IGUAL AL ELEMENTO A BUSCAR
            return mid            # SE RETORNA EL INDICE MEDIO
        if array[mid] < target:   # SI EL VALOR DEL INDICE MEDIO ES MENOR AL ELEMENTO A BUSCAR
            L = mid + 1           # EL INDICE INFERIOR SE INCREMENTA EN 1
        else:                     # SI EL VALOR DEL INDICE MEDIO ES MAYOR AL ELEMENTO A BUSCAR
            R = mid - 1           # EL INDICE SUPERIOR SE DECREMENTA EN 1
    return -1                     # SI NO SE ENCONTRO EL ELEMENTO A BUSCAR, SE RETORNA -1

# CASO DE PRUEBA
def main():
  array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
  target = 16
  if array[binarySearch(array, target)] == target:
    print("SI SE ENCUENTRO EL VALOR BUSCADO", target)
  else:
    print("NO SE ENCUENTRO EL VALOR BUSCADO", target)
main()
<filename>aula06/binarySearch/binarySearch.py
'''ALUMNA: <NAME>
   EJERCICIO 00: BINARY SEARCH'''

# DESCRIPCION: IMPLEMENTACION DE LA FUNCION BINARY SEARCH, LA FUNCION RECIBE UN ARRAY Y UN ELEMENTO A BUSCAR, LA FUNCION RETORNA EL INDICE DEL ELEMENTO QUE SE ESTA BUSCANDO

def binarySearch(array, target):
    L = 0                         # L = LIMITE INFERIOR
    R = len(array) - 1            # LIMITE SUPERIOR
    while (L <= R):               # SI EL LIMITE INFERIOR ES MENOR O IGUAL AL LIMITE SUPERIOR
        mid = L + (R - L) // 2    # SE CALCULA EL INDICE MEDIO
        if array[mid] == target:  # SI EL VALOR DEL INDICE MEDIO ES IGUAL AL ELEMENTO A BUSCAR
            return mid            # SE RETORNA EL INDICE MEDIO
        if array[mid] < target:   # SI EL VALOR DEL INDICE MEDIO ES MENOR AL ELEMENTO A BUSCAR
            L = mid + 1           # EL INDICE INFERIOR SE INCREMENTA EN 1
        else:                     # SI EL VALOR DEL INDICE MEDIO ES MAYOR AL ELEMENTO A BUSCAR
            R = mid - 1           # EL INDICE SUPERIOR SE DECREMENTA EN 1
    return -1                     # SI NO SE ENCONTRO EL ELEMENTO A BUSCAR, SE RETORNA -1

# CASO DE PRUEBA
def main():
  array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
  target = 16
  if array[binarySearch(array, target)] == target:
    print("SI SE ENCUENTRO EL VALOR BUSCADO", target)
  else:
    print("NO SE ENCUENTRO EL VALOR BUSCADO", target)
main()
ALUMNA: <NAME>    EJERCICIO 00: BINARY SEARCH # DESCRIPCION: IMPLEMENTACION DE LA FUNCION BINARY SEARCH, LA FUNCION RECIBE UN ARRAY Y UN ELEMENTO A BUSCAR, LA FUNCION RETORNA EL INDICE DEL ELEMENTO QUE SE ESTA BUSCANDO # L = LIMITE INFERIOR # LIMITE SUPERIOR # SI EL LIMITE INFERIOR ES MENOR O IGUAL AL LIMITE SUPERIOR # SE CALCULA EL INDICE MEDIO # SI EL VALOR DEL INDICE MEDIO ES IGUAL AL ELEMENTO A BUSCAR # SE RETORNA EL INDICE MEDIO # SI EL VALOR DEL INDICE MEDIO ES MENOR AL ELEMENTO A BUSCAR # EL INDICE INFERIOR SE INCREMENTA EN 1 # SI EL VALOR DEL INDICE MEDIO ES MAYOR AL ELEMENTO A BUSCAR # EL INDICE SUPERIOR SE DECREMENTA EN 1 # SI NO SE ENCONTRO EL ELEMENTO A BUSCAR, SE RETORNA -1 # CASO DE PRUEBA