Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
en ellas encontramos las siguientes:
ESTRUCTURAS LÓGICAS DE DATOS:
ESTRUCTURAS PRIMITIVAS Y SIMPLES: ESTRUCTURAS LINEALES Y NO LINEALES:
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
en ellas encontramos las siguientes:
ESTRUCTURAS LÓGICAS DE DATOS:
ESTRUCTURAS PRIMITIVAS Y SIMPLES: ESTRUCTURAS LINEALES Y NO LINEALES:
Funciones y procedimientos propios de LPPurumisama
Para mejorar la creación de algoritmos, para profundizar en LPP o simplemente para saber más sobre las potencialidades de esta herramienta tienes que leer "Funciones y Procedimientos propios de LPP".
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Estructura de datos
Unidad 1: Introducción a las estructuras de datos
Retícula ISIC-2010-224: Programa: AED-1026;
Funciones y procedimientos propios de LPPurumisama
Para mejorar la creación de algoritmos, para profundizar en LPP o simplemente para saber más sobre las potencialidades de esta herramienta tienes que leer "Funciones y Procedimientos propios de LPP".
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Estructura de datos
Unidad 1: Introducción a las estructuras de datos
Retícula ISIC-2010-224: Programa: AED-1026;
En la ciencia de la computación los algoritmos son más importantes que los LP o que las computadoras; la solución de un problema haciendo uso de las computadoras requiere por una parte un algoritmo o método de resolución y por otra un programa o codificación del algoritmo en un LP. Ambos componentes tienen importancia; pero la del algoritmo es absolutamente indispensable; sabemos que un algoritmo es una secuencia de pasos para resolver un problema.
Esta presentacion muestra que es un algoritmo asi como la elaboracion del mismo
Encuentra mas libros y cosas utiles en http://ballbreackerhouse.blogspot.mx/ SI TE GUSTO O FUE DE UTILIDAD DALE LIKE
Eficiencia en uso en algoritmos- tiempo de ejecuciónUVM
Explorando los elementos que nos sirven para medir la eficiencia de un código - algoritmo. Conocer el tiempo que tarda en ejecutarse.
Código muestra en C++
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA, crea y desarrolla ACERTIJO: «CARRERA OLÍMPICA DE SUMA DE LABERINTOS». Esta actividad de aprendizaje lúdico que implica de cálculo aritmético y motricidad fina, promueve los pensamientos lógico y creativo; ya que contempla procesos mentales de: PERCEPCIÓN, ATENCIÓN, MEMORIA, IMAGINACIÓN, PERSPICACIA, LÓGICA LINGUISTICA, VISO-ESPACIAL, INFERENCIA, ETCÉTERA. Didácticamente, es una actividad de aprendizaje transversal que integra áreas de: Matemáticas, Neurociencias, Arte, Lenguaje y comunicación, etcétera.
1. Análisis de Algoritmos
Tiempo de ejecución de un algoritmo
Prof.: Ricardo Botero Tabares
Ingeniería en Software
Facultad de Ingeniería
2014
2. Tiempo de ejecución de un algoritmo
Al evaluar un algoritmo se debe tener en cuenta su
eficiencia en cuanto a:
– consumo de memoria y
– tiempo de ejecución,
teniendo en cuenta el tamaño de la entrada de datos.
2
3. La eficiencia en cuanto al consumo de memoria:
hoy es irrelevante.
La eficiencia en cuanto al tiempo de
ejecución es relevante (a pesar de las altas
velocidades del procesador), sobre todo en
algoritmos relacionados con el control de
procesos en tiempo real y en aquellos cuya
frecuencia de ejecución es alta.
Tiempo de ejecución de un algoritmo
3
4. ¿Cómo medir el tiempo de ejecución de un algoritmo?
Existen dos formas: a posteriori y a priori .
– A posteriori
Solución del problema (Identificación de requisitos,
abstracción de clases, definición de las responsabilidades de las
clases, escritura de seudocódigo OO),
edición/compilación/ejecución del programa en una máquina y
lenguaje determinado (aplicando pruebas continuas o
paralelas).
Se depende de la calidad del compilador y de la máquina, por tanto es
subjetiva la evaluación del algoritmo.
Tiempo de ejecución de un algoritmo
4
5. – A priori
La evaluación del algoritmo se realiza con independencia del lenguaje
de programación en el cual se codifique y de la máquina en la cual se
ejecute. Para ello se deben definir dos conceptos básicos:
Contador de frecuencias y orden de magnitud.
Contador de Frecuencias:
es una expresión algebraica que indica el número de
veces que se ejecutan las instrucciones de un algoritmo.
Tiempo de ejecución de un algoritmo
5
6. Algoritmo 1:
void metodo1(){
int a, b, c;
double d;
Consola.imprimir(“Ingrese dos números enteros:”);
a = Consola.leerEntero();
b = Consola.leerEntero();
c = a + b;
d = (c % a) / 7;
Consola.imprimir (“Suma de ambos números: ” + c);
Consola.imprimir (“(” + c + “ % ” + a + “) / 7 = ” + d);
}
-------------- 1
---------------------------------------------------- 1
---------------------------------------------------- 1
----------------------------------------------------------------------- 1
------------------------------------------------------------------- 1
------------ 1
----------- 1
_____
CF = 7
Tmetodo1( ) es O(1)
Tiempo de ejecución de un algoritmo
6
7. Algoritmo 2:
void metodo2(){
int acum, cont, n;
Consola.imprimir(“Ingrese un número entero:”);
n = Consola.leerEntero();
suma = 0;
cont = 1;
while (cont <= n){
suma = suma + cont;
cont = cont + 1;
}
Consola.imprimir(“Contador = ” + cont + “nAcumulador = ” + suma);
}
--------------------------- 1
---------------------------------------------------------- 1
------------------------------------------------------------------------- 1
------------------------------------------------------------------------- 1
-------------------------------------------------------------- n + 1
--------------------------------------------------- n
---------------------------------------------------------- n
------------------------------------------------------------------------ n
1
_____
CF = 4n + 6Tmetodo2(n) es O(n)
Tiempo de ejecución de un algoritmo
7
8. Algoritmo 3:
void metodo3(int n, int m){
int acum = 0, i = 1, j, cont;
while (i <= n){
cont = 0;
j = 1;
while (j <= m){
cont = cont + 1;
j = j + 1;
}
acum = acum + cont;
i = i + 1;
}
Consola.imprimir(n + “n” + m + “n” + acum);
}
--------------------------------------------- 2
-------------------------------------------------------------- n + 1
--------------------------------------------------------- n
------------------------------------------------------------- n
------------------------------------------------- (m +1) * n
---------------------------------- m * n
-------------------------------------------- m * n
-------------------------------------------------------------- m * n
--------------------------------------- n
--------------------------------------------------------- n
--------------------------------------------------------------- n
--------------------- 1
______________
CF = 4 (n * m)+ 7n + 4
Tmetodo3(n, m) es O(n * m)
Tiempo de ejecución de un algoritmo
8
9. Algoritmo 4:
void metodo4(int n){
int sum = 0, i = 1, tot, j;
while (i <= n){
tot = 0;
j = 1;
while (j <= n){
tot = tot + 1;
j = j + 1;
}
sum = sum + tot;
i = i + 1;
}
Consola.imprimir(n + “n” + sum);
}
--------------------------------------------- 2
--------------------------------------------------------- n + 1
----------------------------------------------------- n
-------------------------------------------------------- n
-------------------------------------------- (n +1) * n
--------------------------------- n2
--------------------------------------- n2
------------------------------------------------------------ n2
--------------------------------------- n
--------------------------------------------------- n
-------------------------------------------------------------- n
------------------------------ 1
________________
CF = 4n2 + 7n + 4
Tmetodo4(n) es O(n2)
Tiempo de ejecución de un algoritmo
9
10. Orden de magnitud:
El orden de magnitud define la eficiencia de un algoritmo en
cuanto al tiempo de ejecución. Se obtiene a partir del contador
de frecuencias, así:
De los términos resultantes, se eliminan los coeficientes, las
constantes y los términos negativos; si los términos son
dependientes entre sí, se elije el mayor de ellos. Si el contador
de frecuencias es una constante, el orden de magnitud es O(1),
es decir, constante.
Tiempo de ejecución de un algoritmo
10
11. Teniendo en cuenta lo anterior, los órdenes de magnitud de los
algoritmos dados son:
– Algoritmo 1: O(1)
– Algoritmo 2: O(n)
– Algoritmo 3: O(n * m)
– Algoritmo 4: O(n2)
Tiempo de ejecución de un algoritmo
11
12. Órdenes de magnitud comunes
Orden de magnitud Representación
Constante O(1)
Logarítmico O(log2(n))
Lineal O(n)
Semilogarítmico O(nlog2(n))
Cuadrático O(n2)
Cúbico O(n3)
Exponencial O(2n)
Tiempo de ejecución de un algoritmo
12
13. Análisis de Algoritmos
Tiempo de ejecución de un algoritmo
Prof.: Ricardo Botero Tabares
Ingeniería en Software
Facultad de Ingeniería
2014