Algoritmos, desarrollo de la Lógica de Programación
- Descripción
- Currículum
- Reseñas
En este curso de Algoritmos aprenderás las nociones para desarrollar tu lógica de programación. Este curso dará un recorrido completo por todos los conceptos más básicos para aprender a crear tus propios algoritmos, gracias a la visión global que adquirirás. De hecho a lo largo del curso aprenderás cámo aplicar cada idea a cualquier lenguaje de programación.
Aprenderás habilidades fundamentales para la programación:
- Algoritmos Elementales
- Desarrollo de la lógica de programación
- Buenas prácticas al escribir código
- Optimización de recursos, tiempo y operaciones en un algoritmo
Además contarás con material didáctico descargable, consejos desde mi experiencia de +15 años programando y ejercicios resueltos para que entiendas qué lógica sigue cada algoritmo y sepas implementarlo en el lenguaje que tú prefieras.
Aprenderás a desarrollar desde cero algoritmos con los que resolver problemas sin importar el lenguaje de programación o tecnología que uses. Principalmente nos centraremos en la lógica del desarrollo de manera que tu podrás trasladar la idea a tu propio entorno de desarrollo. Por lo tanto, no importa qué lenguaje uses, los contenidos de estas clases serán totalmente útiles para tí.
Entre los diferentes algoritmos que veremos están incluidos los de ordenación con una explicación detallada de su funcionamiento y de cada linea y elemento del código que estos tengan. ¿¿Sabes que en este curso crearemos un algoritmo de ordenación más rapido que los famosos de Intercambio o Bubble Sort, Selección o Inserción?? Si quieres saber como crear algoritmos pensando en la optimización y eficacia…estás ante el curso ideal para tí.
Todos los conceptos se explican en detalle, paso a paso y entendiendo el por qué de cada cosa. Así podrás captar unas correctas bases sobre estos pilares de la programación desde un principio en tu desarrollo profesional. Este curso te permitirá expandirte a cualquier área del desarrollo de software.
¿Verdad que es genial? Pues lo mejor de todo es que está a tu alcance.
Compra el curso y disfruta de todo lo que te está esperando.
Nos vemos!
José Javier Villena
-
2Desarrollo de Lógica de ProgramaciónVideo lesson
En este clase te propondre un ejercicio a simple vista sencillo pero te forzará a pensar una solución ingeniosa. Este tipo de situaciones iniciaran tu desarrollo de lógica para programar.
El código de esta clase es el siguiente:int subAlg(int a, int b) {
int value = 0;
while (a > b) {
b++;
value++;
}
return value;
}
-
3Ejercicios (incluye consejos de Buenas Prácticas)Video lesson
En esta clase continuamos desarrollando algoritmos en base a lo visto en la clase anterior
El código de esta clase es el siguiente:
int mulAlg(int a, int b) {
int value = 0;
while (a) {
a--;
value += b;
}
return value;
}
-
4Ejercicios (incluye consejos sobre Cómo aprender de otros)Video lesson
En esta clase desarrollamos algoritmos algo más complicados al mismo tiempo que te recomiendo algunas webs donde aprender del código de otros profesionales expertos
El código de esta clase es el siguiente:
int divAlg(int a, int b) {
int value = 0;
while (a>=b) {
value++;
a -= b;
}
cout << "15 / 3 = " << value << "(" << a << ")" << endl;
return value;
}
-
5Optimización de un AlgoritmoVideo lesson
En esta clase veremos cómo se puede optimizar MUCHISIMO un ejercicio conocido. Aquí adquirirás el esencial hábito de la optimización
El código de esta clase es el siguiente:
void verifyPrime(int number) {
bool prime = true;
for (int i = 2; i <= number/2 && prime; i++) {
if (number % i == 0) prime = false;
}
if (prime) cout << number << " is prime" << endl;
else cout << number << " is not prime" << endl;
}
-
6Algoritmos de Ordenación. Tipos y por qué son importantesVideo lesson
Antes de explicar cada uno de los algoritmos que veremos, tendremos una visión global de esta sección. En esta clase hablaremos sobre por qué son importantes los algoritmos de ordenación y haremos una comparativa entre ellos
-
7Algoritmo de Intercambio (Bubble Sort)Video lesson
En esta clase te explicaré la lógica que sigue el algoritmo de Intercambio o Bubble Sort para que comprendas este método de ordenamiento. Tras ver este video te animo a que intentes plasmar en código el algoritmo. Y después en la clase siguiente podrás comprobar como lo he hecho yo. De esta manera puedes poner a prueba tus habilidades y perfeccionar tu capacidad de convertir en código el pensamiento lógico sobre la resolución de un problema.
-
8Implementacion en Código del Algoritmo de Intercambio (BubbleSort)Video lesson
En esta clase veremos el paso a código del algoritmo de Intercambio o BubbleSort con la explicación exacta de qué hace cada linea y elemento del código
El código de esta clase es el siguiente:
void byBubbleSort() {
//int v[] = { 2,7,1,4,3,5,0,8,2,-1,2 };
int v[] = { 7, 28, 2, 53, 16, 13, 45, 345, 2345, 234, 35235 ,123, 4346,75, 4,7,3,68,2,6,63,2,0,68,436,12,343,54,25, 13, 15, 2, 97, 81, 981 ,618 ,61, 3280, 18, 5, 78, 23, 81, 65, 84, 72, 95 };
int size = sizeof(v) / sizeof(*v);
int aux;
int rounds = 0;
bool ord = false;
cout << endl;
for (int i = 0; i < size; i++) cout << v[i] << " ";
while (!ord) {
ord = true;
for (int i = 0; i < size - 1 - rounds; i++) {
if (v[i] > v[i + 1]) {
aux = v[i + 1];
v[i + 1] = v[i];
v[i] = aux;
ord = false;
}
}
rounds++;
}
cout << endl;
for (int i = 0; i < size; i++) cout << v[i] << " ";
}
-
9Algoritmo de Ordenación por SelecciónVideo lesson
En esta clase te explicaré la lógica que sigue el algoritmo de Selección para que comprendas este método de ordenamiento. Tras ver este video te animo a que intentes plasmar en código el algoritmo. Y después en la clase siguiente podrás comprobar como lo he hecho yo. De esta manera puedes poner a prueba tus habilidades y perfeccionar tu capacidad de convertir en código el pensamiento lógico sobre la resolución de un problema.
-
10Implementacion en Codigo de Algoritmo por SelecciónVideo lesson
En esta clase veremos el paso a código del algoritmo de Selección con la explicación exacta de qué hace cada linea y elemento del código
El código de esta clase es el siguiente:
void bySelectionSort() {
//int v[] = { 2,7,1,4,3,5,0,8,2,-1,2 };
int v[] = { 7, 28, 2, 53, 16, 13, 45, 345, 2345, 234, 35235 ,123, 4346,75, 4,7,3,68,2,6,63,2,0,68,436,12,343,54,25, 13, 15, 2, 97, 81, 981 ,618 ,61, 3280, 18, 5, 78, 23, 81, 65, 84, 72, 95 };
int size = sizeof(v) / sizeof(*v);
int aux;
int PosMin;
cout << endl;
for (int i = 0; i < size; i++) cout << v[i] << " ";
for (int i = 0; i < size; i++) {
PosMin = i;
for (int j = i + 1; j < size; j++) {
if (v[PosMin] > v[j])
PosMin = j;
}
aux = v[i];
v[i] = v[PosMin];
v[PosMin] = aux;
}
cout << endl;
for (int i = 0; i < size; i++) cout << v[i] << " ";
}
-
11Proyecto de Creación de un Algoritmo Propio de OrdenaciónVideo lesson
En este video te explicaré el algoritmo que he desarrollado personalmente para ordenar datos y la implementación correspondiente en código
Por favor trata de crear tu propio algoritmo y comparte tu código! :)
El código de esta clase es el siguiente:
void byJJ() {
unsigned t0, t1;
t0 = clock();
//int v[] = { 2,7,1,4, 5,8,0};
int v[] = { 7, 28, 2, 53, 16, 13, 45, 345, 2345, 234, 35235 ,123, 4346,75, 4,7,3,68,2,6,63,2,0,68,436,12,343,54,25, 13, 15, 2, 97, 81, 981 ,618 ,61, 3280, 18, 5, 78, 23, 81, 65, 84, 72, 95 };
int size = sizeof(v) / sizeof(*v);
int aux;
int PosMin;
int PosMax;
int PosFinal;
PosFinal = size - 1;
cout << endl;
for (int i = 0; i < size; i++) cout << v[i] << " ";
for (int i = 0; i < size / 2; i++) {
PosMin = i;
PosMax = i;
for (int j = i; j <= PosFinal; j++) {
if (v[j] > v[PosMax]) PosMax = j;
if (v[j] < v[PosMin]) PosMin = j;
}
aux = v[PosMin];
v[PosMin] = v[i];
v[i] = aux;
if (PosMax == i) PosMax = PosMin;
aux = v[PosFinal];
v[PosFinal] = v[PosMax];
v[PosMax] = aux;
PosFinal--;
//cout << endl;
//for (int n = 0; n < size; n++) cout << v[n] << " ";
}
cout << endl;
for (int i = 0; i < size; i++) cout << v[i] << " ";
t1 = clock();
double time = (double(t1 - t0) / CLOCKS_PER_SEC);
cout << endl << endl << "Execution Time byJJ: " << time << endl;
}
-
12Consejos Finales para Mejorar la habilidad de desarrolloVideo lesson
Antes de cerrar la sección de algoritmos te doy algunos consejos para que sigas desarrollando tu habilidad para programar
