Está en la página 1de 3

namespace busss

{
class Program
{
static void Main(string[] args)
{
Console.Title = "P49 - ESTRUCTURA BUSQUEDA BINARIA ASCENDENTE -";
Console.BackgroundColor = ConsoleColor.DarkMagenta;
Console.ForegroundColor = ConsoleColor.White; Console.Clear();
//Bloque
try
{
int[] promedios = new int[20]; // declaración del arreglo
int C; // contador
Console.Write("-- CAPTURA DE PROMEDIOS --\n\n"); for (C = 0; C < 20; C++) //
ciclo de captura
{
Console.Write("Ingrese promedio: ");
promedios[C] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("\n\nCaptura exitosa... presione ENTER para continuar");
Console.ReadKey(); Console.ReadKey(); Console.Clear();
Console.Write("-- DESPLIEGUE DE PROMEDIOS --\nPromedios ingresados:
\n\n"); for (C = 0; C < 20; C++) // ciclo de despliegue
{
Console.Write("{0} ", promedios[C]);
}
BurbujaSimple(promedios); // ordenamiento ascendente
Console.Write("\n\n-- BUSQUEDA BINARIA --\n\n");
Busqueda_Binaria(promedios); // procedimiento de búsqueda binaria
Console.Write("\n\n-- DESPLIEGUE DE PROMEDIOS --\nascendente: \n\n"); for
(C = 0; C < 20; C++) // ciclo de despliegue
{
Console.Write("{0} ", promedios[C]);
}
Console.WriteLine("\n\nPrograma finalizado... presione ENTER para salir");
Console.ReadKey(); Console.ReadKey();
}//bloque catch
catch
{
}//bloque
finally

{
Console.WriteLine("El bloque finally a finalizado"); Console.ReadKey();
}
}
public static void BurbujaSimple(int[] promedios) //método ordenamiento por búrbuja
simple
{
int x = 0; int T = 0;
while (x < 20)
{
for (int y = x + 1; y < 20; y++)
{
if (promedios[x] > promedios[y]) //comparaciones
{
T = promedios[x];
promedios[x] =
promedios[y];
promedios[y] = T;
}
}
x++; //incremento
}
}
public static void Busqueda_Binaria(int[] promedios)
{
int mitad, lugar; int T =
promedios.Length; int Li = 0, Ls = T -
1, comparaciones = 0; bool
encontrado = false;
Console.Write("¿Qué promedio desea buscar? "); int busca =
Convert.ToInt32(Console.ReadLine());
while (Li <= Ls && encontrado != true)
{
comparaciones++; // acumulador
mitad = (Li + Ls) / 2; // proceso aritmético
if (promedios[mitad] == busca) // comparaciones
{
lugar = mitad; encontrado = true;
}
else
{
if (busca > promedios[mitad])
{
Li = mitad + 1;
}
else
{
Ls = mitad - 1;
}
}
}
if (encontrado == true) // despliegue de resultados
{
Console.WriteLine("\nPromedio <{0}> encontrado",
busca);
}
else
{ Console.WriteLine("\nPromedio <{0}> no encontrado", busca); }
Console.WriteLine("\nTotal de comparaciones: {0} ", comparaciones);
}
}
}

////Nombre: Garcia Garcia Alexandra Isabella


////Numero de Control: 20210936
////Materia: Estructura de Datos
//Grupo: R
////Serie: Sc3r

También podría gustarte