domingo, 13 de noviembre de 2011

Busqueda Binaria

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tipos_de_Busquedas
{
    class Program
    {
        static void Main(string[] args)
        {
            TipoBusqueda TB = new TipoBusqueda();

            List<int> Lista = new List<int>();

            Lista.Add(78);
            Lista.Add(35);
            Lista.Add(243);
            //Lista.Add(2);
            //Lista.Add(65);
            //Lista.Add(4);
            //Lista.Add(243);
            //Lista.Add(12);
            //Lista.Add(1);

            int Buscador = 243;

            Console.WriteLine("BUSQUEDA SECUENCIAL");
            Console.WriteLine();
            Console.WriteLine("El Elemento " + Buscador);
            Console.WriteLine("¿se encuentra en la lista? " + TB.BusquedaBinaria(Buscador, Lista));
            Console.ReadKey();
        }
    }

    class TipoBusqueda
    {

        public bool BusquedaBinaria(int Elemento, List<int> Lista)
        {
            int Tamaño = Lista.Count;
            int Centro, Inferior, Superior;
            Inferior = 0;
            Superior = Tamaño - 1;
            while (Inferior <= Superior)
            {
                Centro = ((Superior - Inferior) / 2 + Inferior);

                if (Lista[Centro] == Elemento)
                {
                    return true;
                }
                else
                {
                    if (Elemento < Lista[Centro])
                    {
                        Superior = Centro - 1;
                    }
                    else
                    {
                        Inferior = Centro + 1;
                    }
                }
            }
            return false;
        }
    }
}

No hay comentarios:

Publicar un comentario