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

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Divide and Conquer (divide y vencerás)

30/42
Recursos

Vas avanzando muy rápido, ¡Felicidades! Si fusionamos todo lo que hemos aprendido hasta el momento, ya estás listo para aprender el paradigma divide y vencerás.

Divide y vencerás es agarrar un problema grande y romperlo en subproblemas mucho más pequeños del mismo tipo.

Por ejemplo, podríamos aplicarlo en un algoritmo de ordenamiento, dividiendo nuestra serie de datos en varias sub-series de datos.

En la siguiente clase aprenderemos exactamente cómo aplicar un sistema de ordenamiento utilizando nada más lo que ya aprendimos, recursividad.

Aportes 28

Preguntas 0

Ordenar por:

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

Dividir, Conquistar y Combinar

  • Dividir: Tomar un problema grande en subproblemas
  • Conquistar: Resolver cada uno de los subproblemas
  • Combinar: Unir apropiadamente las respuestas

Divide y vencerás es un paradigma de algoritmos. Un programa típico de Divide y Vencerás resuelve un problema usando los siguientes tres pasos:

  • Dividir: Rompe el problema en sub-problemas del mismo tipo.
  • Conquistar: Resuelve recursivamente los sub-problemas.
  • Combinar: Combina apropiadamente las respuestas.

Un ejemplo clásico de Divide y Vencerás es ‘Merge Sort’. En ‘Merge Sort’, dividimos el arreglo de datos en dos mitades, ordenamos las dos mitades recursivamente, y luego unir las dos mitades.

Divide et impera

El paradigma divide y vencerás se divide en tres partes:

  1. DIVIDIR: El problema se rompe en otros problemas más pequeños.

  2. VENCER: Se van resolviendo cada uno de los bloques de problemas más pequeños que forman tu problema.

  3. COMBINAR: Al final es resultado es combinado para obtener el resultado final.

Muy interesante la explicación del paradigma, es un sistema muy interesante para resolver problemas complejos.

Estoy muy emocionado.

Quicksort!!!

Dividi e vincerai.!!!

разделяй и побеждай

Divide and Conquer:

  • Dividir el problema en sub problemas para manejarlo mas fácil

Hola amigos,

Este video me sirvió mucho para entende este algoritmo, estoy seguro que también encontraran valor en su contenido.

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

Dividir y Vencer
Agarrar un problema y subdividirlo en pequeños trozos

Dividir: Hacer de nuestro enorme problema subproblemas
Conquistar: Resolver cada subproblema utilizando recursividad
Conbinar: Unir correctamente nuestros resultados.

No se por que me recuerda mucho al asyncronismo de Js. Creo que porque me suena mucho a aprovechar el poder de la maquina para que haga diferentes tareas al mismo tiempo; sin embargo ya se que son cosas diferentes xD Solo es una observación

Genial vamos avanzando!

El concepto se entiende, pero no sé si sea el mejor ejemplo que el profe platea, espero terminar bien el módulo.

Muchas gracias Maquiavelo.

Divide y vencerás consiste en tener un gran problema y (Divide) dividirlo en bloques más pequeños y (Conquistar) solucionarlos, (Combinar) para luego unirlo y tener la solución del problema final.

dividir, vencer, combinar

Vamos a darle!!!

El mismo tema se toca en el curso de python, vamos a ver la solución de Celis!

Divide et vinces

muy interesante

Divide & vencerás !!

Genial!!! a la práctica. 😉

Me voy dando cuenta lo importante que es ordenar para las computadoras.

  1. Mis apuntes sobre: "Divide and Conquer (divide y vencerás)"
    Divivir: Romper el problema en pequeños problemas.
    Conquistar: Resolviendo cada uno de los bloques del problema mayor.
    Combinar: Combinar resultados para tener el resultado final.

Buena clase!