Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/badjavii/documentacion-algoritmos-y-ed


https://github.com/badjavii/documentacion-algoritmos-y-ed

cpp data-structures data-types-and-structures memory-management nodes pointers

Last synced: 4 days ago
JSON representation

Awesome Lists containing this project

README

        

# Algoritmos y Estructuras de Datos | Documentación Personal

## Propósito del Repositorio

Este repositorio está destinado a ser un espacio colaborativo para compartir ejercicios, publicar material teórico y trabajar con el plan de clases de la materia de Estructuras de Datos en el lenguaje C++. Aquí encontrarás recursos útiles para mejorar tu comprensión y habilidades en este campo.

El repositorio es mantenido por [Badjavii](https://github.com/Badjavii) (Administrador y Propietario del Repositorio). Nuestro objetivo es documentar nuestro proceso de aprendizaje y colaborar en la practica de ejercicios relacionados con estructuras de datos en el lenguaje C++.

## Instalación de C++

C++ es un lenguaje que no necesita ser descargado e instalado, sin embargo, requiere de un compilador. Un compilador es una herramienta que traduce el código fuente escrito en un lenguaje de programación (como C++) a un lenguaje máquina que la computadora puede ejecutar. Los compiladores son esenciales para convertir tus programas en ejecutables, permitiendo que el hardware de la computadora los entienda y ejecute.

![Diagrama](/resources/readme-how-a-compilator-works.png)

Para programar en C++, necesitas instalar un compilador. Aquí te mostramos algunos compiladores:

- **Visual Studio Code:**
- **Aspecto Positivo:** Ligero y altamente personalizable.
- **Aspecto Negativo:** Requiere configuración adicional para el desarrollo en C++.
- **Instalación:** Instala la extensión `C/C++` de Microsoft y la extensión `C++ Intellisense`. Además, Visual Studio Code cuenta con dos tipos de coompiladores:
- **MSVC:** Instala el compilador desde [Visual Studio MSVC](https://code.visualstudio.com/docs/cpp/config-msvc#_prerequisites).
- **MinGW (recomendando):** Instala el compilador desde [Visual Studio MinGW](https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites).
- **Code::Blocks:**
- **Aspecto Positivo:** Interfaz intuitiva y fácil de usar.
- **Aspecto Negativo:** Menos extensible en comparación con otros IDEs.
- **Instalación:** Descarga e instala desde [Code::Blocks](http://www.codeblocks.org/downloads).
- **Dev-C++:**
- **Aspecto Positivo:** Ligero y rápido de instalar.
- **Aspecto Negativo:** Menos actualizado y con menos características avanzadas.
- **Instalación:** Descarga e instala desde [Dev-C++](https://sourceforge.net/projects/orwelldevcpp/).
- **Visual Studio:**
- **Aspecto Positivo:** Potentes características y asistencia inteligente de código.
- **Aspecto Negativo:** Puede ser intensivo en recursos.
- **Instalación:** Descarga e instala Visual Studio 2022 o versiones anteriores desde [Visual Studio](https://visualstudio.microsoft.com/).

## Introducción - Algoritmos y Estructuras de Datos

La materia de Algoritmos y Estructuras de Datos aborda el manejo dinámico de la memoria a través de estructuras que utilizan punteros, tomando en cuenta la complejidad y eficiencia para optimizar el manejo de la memoria y haciendo uso de algoritmos de ordenamiento.

A lo largo de los años, se han desarrollado y establecido conceptos de ciertas estructuras de datos que, en el lenguaje C++, deben ser definidos y gestionados manualmente mediante funciones. Estas funciones incluyen operaciones como inserción, eliminación y ordenamiento de datos, las cuales desarrollaremos en este curso.

El propósito de este enfoque es desarrollar una capacidad ágil para proponer algoritmos que permitan que el programa lea las direcciones de memoria de manera efectiva (sin colapsos) y cumpla con la tarea asignada para la estructura. Esto implica un manejo eficiente de la memoria y la implementación de estructuras de datos dinámicas que optimicen el rendimiento del programa.

## Herramientas Recomendadas para Practicar

Para mejorar tus habilidades en algoritmos y estructuras de datos, te recomendamos utilizar las siguientes herramientas y recursos en línea:

- **Applets de Árboles y Otras Estructuras:**
- **Uso:** Visualiza y manipula diferentes estructuras de datos como árboles, grafos y listas enlazadas.
- **Importancia:** Ayuda a entender la dinámica y el comportamiento de las estructuras de datos en tiempo real.
- **[Data Structure Visualizations](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html):**
- **Uso:** Ofrece una variedad de recursos educativos, incluyendo visualizaciones interactivas de algoritmos y estructuras de datos.
- **Importancia:** Proporciona una comprensión profunda y visual de cómo funcionan los algoritmos y estructuras de datos.
- **[Visualgo](https://visualgo.net):**
- **Uso:** Plataforma interactiva para visualizar y aprender sobre algoritmos y estructuras de datos.
- **Importancia:** Facilita el aprendizaje mediante animaciones y explicaciones detalladas de cada paso del algoritmo.
- **[Algorithm Visualizer](https://algorithm-visualizer.org):**
- **Uso:** Herramienta interactiva para visualizar la ejecución de algoritmos en tiempo real.
- **Importancia:** Permite experimentar con diferentes algoritmos y ver cómo se comportan con distintos conjuntos de datos.
- **[Toptal](https://www.toptal.com/developers/sorting-algorithms):**
- **Uso:** Repositorio que ofrece visualizaciones de varios algoritmos de ordenamiento.
- **Importancia:** Ayuda a comparar la eficiencia y el funcionamiento de diferentes algoritmos de ordenamiento.

#

Proudly Designed by [Badjavii](https://github.com/Badjavii), junior dev.
Also with the colaboration of [Druxorey](https://github.com/druxorey).