Documentos de Académico
Documentos de Profesional
Documentos de Cultura
rendimiento de los algoritmos que operan sobre estas estructuras. Las estructuras de datos son
formas organizadas de almacenar y manipular datos, como listas, árboles, grafos, pilas, colas,
entre otras. Los algoritmos que se aplican a estas estructuras se utilizan para realizar diversas
operaciones, como inserción, eliminación, búsqueda y ordenación de datos.
El análisis de algoritmos en estructuras de datos implica evaluar cómo se comportan los algoritmos
en términos de tiempo y espacio cuando se aplican a diferentes tamaños y tipos de datos en estas
estructuras. Algunas preguntas clave que el análisis de algoritmos en estructuras de datos busca
responder incluyen:
1. Eficiencia Temporal: ¿Cuánto tiempo lleva realizar una operación en una estructura de
datos? ¿Cómo varía este tiempo a medida que aumenta el tamaño de la estructura o la
cantidad de datos?
2. Eficiencia Espacial: ¿Cuánta memoria se requiere para almacenar una estructura de datos
y los datos que contiene? ¿Cómo varía el uso de memoria a medida que crece la
estructura de datos?
El programa realiza una búsqueda en una lista de números usando el algoritmo de búsqueda
binaria, que tiene una complejidad temporal de O(log n) debido a su naturaleza eficiente en listas
ordenadas.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Estrucdedatos
{
class Program
{
static void Main(string[] args)
{
List<int> numeros = GenerarListaNumeros(1, 100);
while (true)
{
Console.WriteLine("Opciones:");
Console.WriteLine("1. Visualizar lista de números");
Console.WriteLine("2. Buscar un número");
Console.WriteLine("3. Salir");
Console.Write("Seleccione una opción: ");
switch (opcion)
{
case 1:
MostrarListaNumeros(numeros);
break;
case 2:
Console.Write("Ingrese un número para buscar en la lista: ");
int numeroBuscado = Convert.ToInt32(Console.ReadLine());
bool encontrado = BusquedaBinaria(numeros, numeroBuscado);
if (encontrado)
{
Console.WriteLine("El número fue encontrado en la lista.");
}
else
{
Console.WriteLine("El número no fue encontrado en la lista.");
}
break;
case 3:
return;
default:
Console.WriteLine("Opción no válida. Por favor, seleccione una opción válida.");
break;
}
}
}
if (lista[medio] == numero)
{
return true;
}
else if (lista[medio] < numero)
{
izquierda = medio + 1;
}
else
{
derecha = medio - 1;
}
}
return false;
}
}
}
En este programa, la opción "1" permite al usuario visualizar la lista de números generados.
La opción "2" permite buscar un número en la lista utilizando el algoritmo de búsqueda binaria.
El programa genera y almacena una lista de números en una estructura de datos y luego calcula la
suma de todos los números en esa lista. La complejidad en el espacio se refiere a la cantidad de
memoria utilizada por un algoritmo o programa para ejecutarse. En este ejemplo, la complejidad
en el espacio es O(n), donde n es el número de elementos en la lista, debido a que estamos
almacenando la lista de números en memoria.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Espacial
{
class Program
{
static void Main(string[] args)
{
Console.Write("Ingrese la cantidad de números a generar y almacenar en la lista: ");
int cantidadNumeros = Convert.ToInt32(Console.ReadLine());
return numeros;
}
return suma;
}