lzapatazamb / TALLER-UNO

0 stars 0 forks source link

BinarySearch #2

Open lzapatazamb opened 7 years ago

lzapatazamb commented 7 years ago

include

int main() { int c, menor, mayor, medio, n, Buscar, array[100]; printf("Ingrese la cantidad de numeros en el arreglo \n"); scanf("%d",&n); printf("Ingrese %d numeros en orden ascendente\n", n); for (c = 0; c < n; c++) scanf("%d",&array[c]); printf("Ingrese numero a buscar\n"); scanf("%d", &Buscar); menor = 0; mayor = n - 1; medio = (menor+mayor)/2; while (menor <= mayor) { if (array[medio] < Buscar) menor = medio + 1; else if (array[medio] == Buscar) { printf("%d Encontrado en la posicion %d.\n", Buscar, medio+1); break; } else mayor = medio - 1; medio = (menor + mayor)/2; } if (menor > mayor) printf("No se encontro el numero %d en el arreglo\n", Buscar); return 0; }

lzapatazamb commented 7 years ago

def BusquedaBinaria(lista, primero, ultimo, target):

if (primero > ultimo):

    index = -1

else:
    mid = int(primero + (ultimo - primero)/2)

    if (target == lista[mid]):

        index = mid

    elif (target < lista[mid]):

        index = BusquedaBinaria(lista, primero, mid - 1, target)

    else:

        index = BusquedaBinaria(lista, mid + 1, ultimo, target)

return index

Arreglo = [1, 2, 3, 4, 5,6,7,8,9,10,11,12]

print("Arreglo:", Arreglo)

print("Numero en la ubicacion:", BusquedaBinaria(Arreglo, 0, 12,3)) #tercer num es el buscado.

lzapatazamb commented 7 years ago

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
    // TODO code application logic here
    int c, izquierda, derecha, mitad, n, search, array[];

    Scanner in = new Scanner(System.in);
    System.out.println("Introduzca el número de elementos");
    n = in.nextInt();
    array = new int[n];
    System.out.println("Escriba " + n + " numeros");

    for (c = 0; c < n; c++) {
        array[c] = in.nextInt();
    }

    System.out.println("Introducir valor para encontrar");
    search = in.nextInt();

    izquierda = 0;
    derecha = n - 1;
    mitad = (izquierda + derecha) / 2;

    while (izquierda <= derecha) {
        if (array[mitad] < search) {
            izquierda = mitad + 1;
        } else if (array[mitad] == search) {
            System.out.println("valor encontrado en la posision " + (mitad) + ".");
            break;
        } else {
            derecha = mitad - 1;

                    }

        mitad = (izquierda + derecha) / 2;
        System.out.println("Valor no encontrado");
        break;
    }
    if (izquierda > derecha) {
    }

}

}