Bienvenido al Curso

1

Introducción al curso básico de algoritmos y estructuras de datos

Introducción a los algoritmos

2

¿Qué entiende una computadora?

3

Lenguajes de programación

4

Estructuras de datos

5

¿Qué es un algoritmo?

6

Metodología para la construcción de un algoritmo

7

Variables y tipos de datos

8

User defined data types

9

Instalando Ubuntu Bash en Windows

10

Creando nuestro user defined data type

11

Abstract Data Types básicos: Lists, Stacks, Queues

12

Explicación gráfica Data Types básicos

13

Glosario de funciones para Abstract Data Types

14

Clases y objetos

15

Creando tu primera Queue: Arrays

16

Creando tu primera Queue: implementación.

17

Creando tu primera Queue: implementar la función enQueue

18

Creando tu primera Queue: implementar la función deQueue

19

Creando tu primera Queue: main code

Algoritmos de ordenamiento

20

Algoritmos de ordenamiento

21

Bubble sort

22

Bubble sort: implementación

23

Bubble sort: main code

24

Insertion sort

25

Desafío: implementa un algoritmo de ordenamiento

Recursividad

26

Recursividad

27

La función Factorial, calculando el factorial recursivamente

28

Manejo de cadenas de caracteres

29

Arte: Generando arte recursivo

Divide and conquer y programación dinámica

30

Divide and Conquer (divide y vencerás)

31

Qué es la programación dinámica (divide y vencerás v2.0)

32

MergeSort

33

Desafío: Buscar el algortimo más rápido de sort

34

Implementando QuickSort con Python

35

Implementando QuickSort con Python: main code

Algoritmos 'Greedy'

36

Qué son los Greedy Algorithm

37

Ejercicio de programación greedy

38

Ejercio de programación greedy: main code

Grafos y árboles

39

Grafos y sus aplicaciones

40

Árboles

¿Cómo comparar Algoritmos?

41

Cómo comparar algoritmos y ritmo de crecimiento

¿Qué sigue?

42

Cierre del curso y siguientes pasos

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

¿Qué es un algoritmo?

5/42
Recursos

Un algoritmo es un conjunto de instrucciones o pasos que resuelven un problema dado paso a paso y sin generar ambigüedades.

Las instrucciones de la computadora siempre deben dar los mismos resultados cuando tienen los mismos datos de entrada. Por ejemplo, no importa cuantas veces lo preguntes, la operación 5+5 siempre es igual a 10.

Además, podemos programar diferentes instrucciones que terminan con el mismo resultado. Nuestro trabajo también es descubrir cuál es la mejor manera de solucionar estos problemas.

Vamos a crear un diagrama de flujo para realizar un algoritmo que debe resolver el problema de cómo encontrar la ruta más corta para ir de un lugar a otro.

Aportes 88

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Diferentes definiciones de Algoritmo

  • Algoritmo: Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problema.
  • Algoritmo: Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y ordenada que permite solucionar un determinado problema.
  • Algoritmo: una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten arribar a un resultado o solución.
  • Algoritmo: una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema.

¿Cómo se Diseña un Algoritmo?
En programación, un algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema y, para representarlo, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo.

Partes de un Algoritmo
Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso y salida.
Características de los Algoritmos:
Las características fundamentales que debe cumplir todo algoritmo son:

  1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

  2. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

  3. Un algoritmo debe ser finito. el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos.

  4. Un algoritmo debe ser legible: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.

En otras palabras, cada vez que le damos los mismos datos de entrada van a salir los mismos datos de salida.
Bueno sería que revisen estos datos ya que no está el algoritmo de la ruta más corta, en el documento para leer y al parecer falta la clase anterior.
Dejo un link con el algoritmo:
https://www.ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-la-ruta-mas-corta/

El optimismo de él, me motiva aún más.

No veo el archivo con la lectura

Muy interesante y hasta ahorita muy buena la explicación, solo que no se ve nada de tus anotaciones y gráficas con las que trabajas.

Algoritmo
- Conjunto de instrucciones que resuelven un problema dado paso a paso y sin generar ambigüedades

Pasos para una matriz de adyacencias:
- Encontrar lugares
- Encontrar caminos
- Registrar distancias ( pesos )
- Medir distancias
- Comparar las distancias
- Mostrar el mas rapido

Hola gente, esccribi esto sobre algoritmos como un extra a la informacion que ya tenemos en este curso.
Pueden leerlo de blog.
Cualquier feedback es bienvenido.

- Definición de algoritmo: Es un conjunto de instrucciones que resuelven un problema dado paso a paso sin generar ambigüedades.
++*¿Que significa esto? ++
-Que los pasos que se le asigne a la computadora siempre llegara al mismo resultado, siempre y cuando sean los mismos datos de entrada

He publicado un tutorial, donde explico todo lo referente a los algoritmos échenle un ojo:

https://platzi.com/tutoriales/1469-algoritmos/7790-que-son-los-algoritmos/

Alguien tiene la lectura?

Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador de su patrón. … En términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema.

1 Encontrar lugares
2 Encontrar caminos
3 Registrar distancias
4 Medir distancias desde punto origen a destino
5 Comparar distancias
6 Elegir el mas corto

Falta una clase

Concepto de algoritmo

Excelente clase Ricardo.

donde consigo el archivo con el código?

Mientras más puntuales y menos ambiguos sean nuestros pasos, serán más eficientes nuestros algoritmos.

Creo que este curso me va a ayudar mucho a desarrollar mi habilidad de resolver problemas, buenisima clase.

I guess it´s a good example but it could be better if the best way with ponderation was cas-caf-com-esc.
This just to see that if we add a value to each way, the result can be different than if we do it without ponderation

No cabe duda que debe ser muy detallado :S

lo codie en c#
using System;

public class Program
{
public static void Main()
{
console.readline();
Console.WriteLine(“que es un algoritmo”);
int ruta1 = 15;
double ruta2 = 12.5;

	if (ruta2 < ruta1)
	{
		Console.WriteLine("LA RUTA 2 ES MAS CORTA ");
	} 
	
}

}

El algoritmo de Dijkstra lo aprendi en la universidad.

Y el archivo? no lo veo :c

**Algoritmo** Un algoritmo es una secuencia finita y ordenada de pasos o instrucciones, claramente definidos y sin ambigüedades, que se diseñan para realizar una tarea específica o resolver un problema determinado. Este conjunto de instrucciones se puede implementar en diferentes lenguajes de programación y se caracteriza por ser ejecutable en un tiempo finito, proporcionando una solución correcta y eficiente para el problema planteado.

¿Qué es un algortimo?

Un algoritmo es una secuencia ordenada de pasos para resolver un problema en específico y sin generar ambiguedades, es decir, siempre obtendremos el mismo resultado con los mismo datos de entrada.

Según Donald Knuth, cumplen las siguientes caracteristicas:

  1. Preciso: Deben ser pasos especificos, claros y sin ambiguedades.
  2. Finito: Tiene un numero determinado de pasos, tiene un fin.
  3. Entrada: Es el insumo, son los datos con lo que trabajará el programa. Puede tener 0 o más entradas.
  4. Salida: Son los resultados del proceso. Puede tener una o más salidas.
  5. Eficacia: Se alcanza lo que se quiere lograr, la meta.

Que mejor que con un ejemplo detallado, excelente.

Un algoritmo es una serie de pasos o instrucciones que se siguen para resolver un problema o realizar una tarea específica. Es como una receta de cocina que nos indica qué ingredientes usar y en qué orden mezclarlos para hacer una comida deliciosa. En el mundo de la informática, los algoritmos son fundamentales para el desarrollo de programas y software, ya que son la base para que las computadoras puedan realizar tareas complejas de manera eficiente y precisa. Los algoritmos pueden ser muy simples, como la forma de hacer una suma, o muy complejos, como la forma de procesar grandes cantidades de datos para encontrar patrones o soluciones a problemas complejos.

Un algoritmo resuelve problemas… Ok ¿Pero como sabemos cual algoritmo tiene la mejor solución? 🤔.
Mediante un análisis computacional;
El análisis computacional es una forma de medir la eficiencia de un algoritmo. Esto puede ser útil para determinar qué algoritmo es el más adecuado para una tarea particular. Nos permite medir el tiempo ⏲ de ejecución de un determinado algoritmo y determinar la cantidad de recursos (memoria, capacidad de procesamiento) que gastara.

Un algoritmo es un conjunto de instrucciones o pasos que resuelven un problema dado paso a paso y sin generar ambigüedades.

Las instrucciones de la computadora siempre deben dar los mismos resultados cuando tienen los mismos datos de entrada. Por ejemplo, no importa cuantas veces lo preguntes, la operación 5+5 siempre es igual a 10.

Además, podemos programar diferentes instrucciones que terminan con el mismo resultado. Nuestro trabajo también es descubrir cuál es la mejor manera de solucionar estos problemas.

Vamos a crear un diagrama de flujo para realizar un algoritmo que debe resolver el problema de cómo encontrar la ruta más corta para ir de un lugar a otro.

Desde mi perspectiva, un algoritmo son una serie de instrucciones o pasos que se ejecutan de manera lineal o no lineal, para resolver un problema específico, este es finito y por lo mismo tiene un inicio y un final, también conocido como entrada, el procesamiento de datos y un resultado o salida.

Todo algoritmo consta de tres partes.

Entrada: en la entrada o input del algoritmo será donde se introduzcan todos aquellos datos que el algoritmo necesite para operar.

Procesamiento: con lo recibido en la entrada o input, el algoritmo realizará una serie de cálculos lógicos para resolver el problema.

**Salida: **los resultados obtenidos en el procesamiento se mostrarán en la salida o output del algoritmo —> Resultado final.

hola alguien que colobore que maneja te de javas scrip

¿Qué es un algoritmo?
Un algoritmo es una secuencia lógica y finita de pasos que permite solucionar un problema o cumplir con un objetivo.

Los algoritmos deben ser precisos e indicar el orden lógico de realización de cada uno de los pasos, debe ser definido y esto quiere decir que si se ejecuta un algoritmo varias veces se debe obtener siempre el mismo resultado, también debe ser finito o sea debe iniciar con una acción y terminar con un resultado o solución de un problema.

Diferentes definiciones de Algoritmo:

* Algoritmo, Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problema.
* Algoritmo, Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y ordenada que permite solucionar un determinado problema.
* Algoritmo, Una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten arribar a un resultado o solución.
* Algoritmo, Una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema.

¿Cómo se Diseña un Algoritmo?
En programación, un algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema y, para representarlo, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo.


Partes de un Algoritmo, Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso y salida.


Características de los Algoritmos: Las características fundamentales que debe cumplir todo algoritmo son:

1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
2. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
3. Un algoritmo debe ser finito. el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos.
4. Un algoritmo debe ser legible: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.

I’m excited to learn what this is!

bien!

Los algoritmos son series de instrucciones que se usan en ciencias de la computación para resolver un problema. Conocer y entender los algoritmos es necesario para todo programador.

  • Nota : Los algoritmos NO ayudan mucho donde la lógica tiene un peso importante.

donde está la lectura?

GG

Y la lectura???

@ricardocelis no está la lectura…¿?

Me gustaría hacer este pequeño ejercicio en código

es una secuencia o un conjunto?

Investigación de operaciones CPM

Bien

Donde está la lectura?

Algoritmo: ¡La ruta más optima para llegar a una solución!

Un algoritmo es la descripción paso a paso de como se soluciona un problema. Cuando un problema es demasiado grande lo recomendable es dividirlo y a esto se le llama diseño modular o descendente (top-down).
Hay dos formas de representar un algoritmo:

  • Gráfica, mediante un diagrama de flujo (lo más recomendable).
  • Pseudocódigo, es una secuencia de pasos para solucionar el problema.

Vamos bien…se entiende…!!

se debe tener muy buena compresión del requerimiento u objetivo para plantear de forma adecuada la estructura del programa

Nada que ver pero, ¿alguien sabe que tableta utiliza?

refrescando conocimiento 😃

ALGORITMO es un conjunto de instrucciones o sucesion de pasos que van en el orden que se los indique.

Excelente explicación, todo anotado y entendido, sigamos 😃

Algoritmo: conjunto de instrucciones para resolver un problema paso a paso sin ambigüedades.

Muy bien explicado!

Super! 😮

Es increíble que nuestro cerebro, gracias a miles de años de evolución, sea capaz de acer esto de manera tan eficaz.

Todo entendido.

Muy bien explicado

Excelentes clases, muy bien explicado.

Muy buena forma de despertar la curiosidad y el interes por aprender más, el algoritmo de Dijsktra fue uno de los que más me gusto en las clases de Matematicas Discretas

¿Cómo qué el barrio? es la primera vez que lo mencionas y dices que ya lo deberíamos de conocer

Algoritmo: Es la única palabra de computación que conocemos todos los Dominicanos. Se intento usar computadoras para votar y paso lo que tenia que pasar.

HAY UN SALTO DE CLASE: VE A ESTRUCTURA DE DATOS ANTES DE VER ESTE VIDEO

Excelente

Parece que te saltaste una clase

A continuación daré algunas definiciones abordadas usando mis propias palabras:
Un algoritmo son pasos ordenados, claros y objetivos que tienen como fin cumplir una tarea específica. En otras palabras, si se realizan los “pasos” con las mismas variables SIEMPRE se obtendrá el mismo resultado.

Excelente definición de lo que es un algoritmo.

Muy buen concepto de variables en la matriz y evaluación de adyacencias

DEFINICIÓN DE ALGORITMO DE Dijktra:
También llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto, dado un vértice origen, hacia el resto de los vértices en un grafo que tiene pesos en cada arista.

Excelente explicación, no conocía el algoritmo de Dijkstra, me pareció muy interesante. Me asombra que en mi trayecto en la universidad o colegio nunca nos hayan enseñado.

Ejemplo muy bien escogido y mejor explicado 😃

Que es un algoritmo? En la programacion, son un conjuntos de instrucciones para llegar a solventar un problema, un algoritmo puede ir desde lo mas basico de como lavarse las manos hasta cosas mas complejas sobre calculos matematicos condiciones ciclos, etc etc. Pero Basicamente un algoritmo es la forma en estructurar paso por paso como se diseñara un programa mediante a X lenguaje de programacion.

excelente clase!!

Sumaria las distancias dadas en números & dsp compararía cual es el número menor.

Un algoritmo es un conjunto de instrucciones que resuelven un problema con una metodología especifica y sin generar ambigüedades.

Les comparto mis anotaciones 😃

No encuentro la lectura. ayuda porfa

Un algoritmo se puede definir como los pasos para realizar una acción, es muy normal que existan diferentes caminos o pasos para resolver un mismo problema, como no todos son iguales se pueden encontrar diferentes maneras de realizar un algoritmo que resuelva una acción pero todos estos llevaran al mismo resultado.

Es más sencillo de lo que parecía al principio
<h3>Simbología para diagramas de flujo (algoritmos expresados de manera gráfica)</h3>
  1. *Mis apuntes sobre: "¿Qué es un algoritmo?"
    Algoritmo-> Un conjunto de instrucciones que resuelven un problema dado paso a paso sin generar ambiguedades.

Interesante el contendio del profesor.

Cordial saludo comunidad

Comparto la definición de algoritmo de dijkstra, y el código mencionado por el profe celis

// A C++ program for Dijkstra's single source shortest path algorithm. 
// The program is for adjacency matrix representation of the graph 
   
#include <stdio.h> 
#include <limits.h> 
   
// Number of vertices in the graph 
#define V 9
   
// A utility function to find the vertex with minimum distance value, from 
// the set of vertices not yet included in shortest path tree 
int minDistance(int dist[], bool sptSet[]) 
{ 
   // Initialize min value 
   int min = INT_MAX, min_index; 
   
   for (int v = 0; v < V; v++) 
     if (sptSet[v] == false && dist[v] <= min) 
         min = dist[v], min_index = v; 
   
   return min_index; 
} 
   
// A utility function to print the constructed distance array 
int printSolution(int dist[], int n) 
{ 
   printf("Vertex   Distance from Source\n"); 
   for (int i = 0; i < V; i++) 
      printf("%d tt %d\n", i, dist[i]); 
} 
   
// Function that implements Dijkstra's single source shortest path algorithm 
// for a graph represented using adjacency matrix representation 
void dijkstra(int graph[V][V], int src) 
{ 
     int dist[V];     // The output array.  dist[i] will hold the shortest 
                      // distance from src to i 
   
     bool sptSet[V]; // sptSet[i] will be true if vertex i is included in shortest 
                     // path tree or shortest distance from src to i is finalized 
   
     // Initialize all distances as INFINITE and stpSet[] as false 
     for (int i = 0; i < V; i++) 
        dist[i] = INT_MAX, sptSet[i] = false; 
   
     // Distance of source vertex from itself is always 0 
     dist[src] = 0; 
   
     // Find shortest path for all vertices 
     for (int count = 0; count < V-1; count++) 
     { 
       // Pick the minimum distance vertex from the set of vertices not 
       // yet processed. u is always equal to src in the first iteration. 
       int u = minDistance(dist, sptSet); 
   
       // Mark the picked vertex as processed 
       sptSet[u] = true; 
   
       // Update dist value of the adjacent vertices of the picked vertex. 
       for (int v = 0; v < V; v++) 
   
         // Update dist[v] only if is not in sptSet, there is an edge from  
         // u to v, and total weight of path from src to  v through u is  
         // smaller than current value of dist[v] 
         if (!sptSet[v] && graph[u][v] && dist[u] != INT_MAX  
                                       && dist[u]+graph[u][v] < dist[v]) 
            dist[v] = dist[u] + graph[u][v]; 
     } 
   
     // print the constructed distance array 
     printSolution(dist, V); 
} 
   
// driver program to test above function 
int main() 
{ 
   /* Let us create the example graph discussed above */
   int graph[V][V] = {{0, 4, 0, 0, 0, 0, 0, 8, 0}, 
                      {4, 0, 8, 0, 0, 0, 0, 11, 0}, 
                      {0, 8, 0, 7, 0, 4, 0, 0, 2}, 
                      {0, 0, 7, 0, 9, 14, 0, 0, 0}, 
                      {0, 0, 0, 9, 0, 10, 0, 0, 0}, 
                      {0, 0, 4, 14, 10, 0, 2, 0, 0}, 
                      {0, 0, 0, 0, 0, 2, 0, 1, 6}, 
                      {8, 11, 0, 0, 0, 0, 1, 0, 7}, 
                      {0, 0, 2, 0, 0, 0, 6, 7, 0} 
                     }; 
   
    dijkstra(graph, 0); 
   
    return0; 
} ```


`

Fuente: https://www.monografias.com/trabajos107/tecnologias-wan-y-enrutamiento/tecnologias-wan-y-enrutamiento2.shtml
Slds.

Hola! Dejo un enlace al algoritmo Djikstra que menciona Ricardo en la clase! 😉

https://www.youtube.com/watch?v=LLx0QVMZVkk

Perfecto no le encuentro fallas a tu logica