En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado las soluciones de los ejercicios de la relación 24 sobre algoritmos de ordenación en Haskell y sus complejidades.
En la segunda parte de la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos continuado el estudio de los tipos abstractos (TAD) de datos en Haskell y hemos presentados el TAD de las colas siguiendo el esquema usado para el TAD de las pilas.
Se ha comenzado la modelización de las colas observando la forma de introducir o extraer sus elementos. El resultado de la modelización es la especificación del TAD: su signatura y propiedades características.
A continuación se han estudiados dos implementaciones (una basada listas y la otra en pares de listas) juntos con sus complejidades.
Se ha vuelto a resaltar la forma de conseguir la abstracción de tipos en Haskell mediante módulos y exportación sólo de la signatura.
Finalmente, usando QuickCheck se comprueban las propiedades características del TAD de las colas.
La clase se ha dado mediante videoconferencia y el correspondiente vídeo es
Los apuntes correspondientes a la clase son los del tema 15
En la primera parte de la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos empezado el estudio de los tipos abstractos (TAD) de datos en Haskell.
Después de tratar de la abstracción, los TAD en general y su analogía con las estructuras algebraicas, se ha estudiado el primero de los TAD: las pilas.
Se ha comenzado la modelización de las pilas observando la forma de introducir o extraer sus elementos. El resultado de la modelización es la especificación del TAD: su signatura y propiedades características.
A continuación se han estudiados dos implementaciones (una basada en tipos de datos algebraicos y otra en listas) y las complejidades de las operaciones.
Un punto importante es la forma de conseguir la abstracción de tipos en Haskell mediante módulos y exportación sólo de la signatura.
Finalmente, usando QuickCheck se comprueban las propiedades características del TAD de las pilas.
La clase se ha dado mediante videoconferencia y el correspondiente vídeo es
Los apuntes correspondientes a la clase son los del tema 14
Se empezó explicando la notación de Landau y los órdenes de complejidad. A continuación se presentaron varios ejemplos de definiciones de distintos órdenes. En cada ejemplo, se especificó el problema, se definió la función, se hizo una tabla sobre la variación de los tiempos y su correspondiente gráfica, se extrajeron las ecuaciones en recurrencia, se resolvieron con Wolfram Alpha y se demostró por inducción el orden de la definición.
Como resumen, en la siguiente tabla se muestra los ejemplos presentados
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|Ejemplo|Ecuaciones|Orden|
|-------------|--------------------|------------|
|suma|T(1)=k|O(n)|
||T(n+1)=T(n)+k' | |
|-------------|--------------------|------------|
| suma2 | T(1) = k | O(1) |
|-------------|--------------------|------------|
| sumaDeSumas | T(1) = k | O(n²) |
| | T(n+1) = T(n)+n | |
|-------------|--------------------|------------|
| potencia | T(1) = k | O(log(n)) |
| | T(n) = T(n/2)+k'||
|-------------|--------------------|------------|
|raiz|T(0)=k|O(2ⁿ)|
||T(n+1)=2T(n)+k'||
|-------------|--------------------|------------|
|ordenación|T(1)=k|O(nlog(n))|
|por mezcla|T(n)=2T(n/2)+n||
La clase se ha dado mediante videoconferencia y el correspondiente vídeo es