Mostrando entradas con la etiqueta Algoritmos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Algoritmos. Mostrar todas las entradas

Estructuras de datos


Datos

Este es un tema denso, pero fundamental a la hora del manejo de datos. Un conjunto de datos aislado y desordenado de nada sirve. ¿Te imaginas un diccionario en el que todas las palabras estuviesen desordenadas? Aunque nos diera de forma exacta el significado de cada palabra, un diccionario así, de nada serviría.

La organización y estructura de datos es, por tanto, algo fundamental a la hora de hacer uso de los mismos. En el ejemplo anterior, un diccionario contiene miles de palabras y la ordenación alfabética es una ordenación válida y útil. Pero si en vez de contener miles de entradas contuviera unas pocas, por ejemplo, las relativas a países, lo mismo convenía ordenarlos por continentes y dentro de los mismos alfabéticamente. La forma de ordenar unos datos influye a la hora de tener acceso a los mismos.

Una estructura de datos es una colección de datos organizada. En este sentido, un dato puede ser tan simple como un número entero, o tan complejo, como una matriz de números.

Las estructuras pueden ser contiguas, seguidas unas de otras (cadenas, arrays (vectores, matrices, o arrays multidmensionales), registros) o enlazadas, los datos no están contiguos en la memoria. También pueden ser estáticas, cuando el tamaño ocupado en la memoria no puede modificarse, o dinámicas, cuando pueden cambiar de tamaño.

Las estructuras dinámicas se representan por un tipo de dato denominado puntero, que es el dato que indica la posición en la memoria de otro dato.

El objeto de la programación está relacionada con la obtención de un algoritmo que resuelva los problemas de la forma más eficiente posible. Para saber si hemos resuelto el problema de una forma eficiente, debemos conocer la complejidad algorítmica.

Determinar la complejidad de un algoritmo no es tarea sencilla. Está relacionada con el número de operaciones elementales que es preciso realizar. Según el grado del polinomio, así será la complejidad, existiendo lineales, cuadrados, cubicos, etc. Cuando aumenta el grado, aumenta notablemente el número de operaciones, y por tanto el tiempo de resolverlo. Por tanto, es importante estimar la complejidad de un algoritmo.

La recursión es una forma de hallar la solución de un problema mediante soluciones de pequeñas instancias del problema. Un algoritmo recursivo es un algoritmo que expresa la solución de un problema llamándose a sí mismo (llamada recursiva o recurrente). El Teorema maestro se usa para determinar la complejidad de un algoritmo.


1. Estructuras de datos

- Lectura: Instituto de Robótica - U. de Valencia. Estructuras de datos (pdf)




2. Archivos y bases de datos

- Lectura: Instituto de Robótica - U. de Valencia. Archivos y bases de datos (pdf)



3. Complejidad de los algoritmos

- Lectura: Instituto de Robótica - U. de Valencia. Algoritmos y su complejidad (pdf)




4. Teorema maestro

- Lectura: Wikipedia. Teorema maestro
- Presentación: Marcelo Arenas. El Teorema Maestro




Algoritmos
Leer más

Introducción a los algoritmos


Big data

Un algoritmo es una serie de paso o instrucciones definidas para llegar a un objetivo. Se usan para resolver problemas. La ciencia que los estudia se llama Algoritmia, siendo estudiada en Matemáticas y en Informática o Ciencias de la Computación.

Un algoritmo se puede representar por diagramas de flujo u organigramas (símbolos unidos por flechas), pseudocódigo (mezcla de lenguaje natural con convenciones de lenguajes de programación), sistemas formales (modelos matemáticos tan precisos como un lenguaje máquina), implementación (formas de implementación en un programa u otro medio, como las varias formas de resolver una raíz cuadrada), variables (elementos que toman valores de un tipo de datos), y estructuras secuenciales (una acción sigue a otra en una secuencia).

Un algoritmo se puede tomar como una función que transforma los datos de entrada a datos de salida, es decir, tomando una serie de datos llega a otros datos, de los que se pueden extraer conclusiones. Pero no siempre es así, cuando entran en bucle infinito se quedan trabados, no saliendo datos y no llegando a nada.

Relacionado con los algoritmos está el análisis de datos, que consiste en el uso de unos datos, tras su depuración, para obtener unas conclusiones. Dentro del análisis de datos se encuentra la minería de datos, que consiste en una exploración detallada de grandes volúmenes de datos, para aplicar el tratamiento de los mismos a objetivos concretos, como son estudio de patrones de hábitos de consumo, potencialidad para el fraude, detección de actividades terroristas, genética, ingeniería, estadística, etc.

Un término utilizado actualmente para hablar de un número enorme, gigantesco, y masivo de datos es el Big data o macrodatos. Hoy día, es un conocimiento fundamental en marketing, siendo un área con un gran futuro, en la que sus profesionales son enormemente valorados.

En la vida cotidiana actual, dominada por la tecnología, se emite una masiva cantidad de datos que se pueden recoger como jamás se ha producido en ninguna época histórica.

Internet es usado por 4.021 millones de personas, lo que supone más de la mitad de habitantes del planeta. Los españoles gastan al día 5,5 horas al día. Se estima que la mitad es en redes sociales.

La red social Twitter, creada en 2006, tiene 310 millones de usuarios activos, generando 500 millones tuits al día, o sea, 6000 por segundo.

Se suben a YouTube, 10 vídeos por segundo. Si una persona quisiera ver todos los vídeos de YouTube necesitaría 1.700 años.

Existen 200 millones de blogs que se actualizan, creándose unos 120.000 al día.

La Wikipedia, la enciclopedia virtual más usada del mundo,

En España, un 96 % de la población tiene teléfono móvil, de los que el 87 % son smartphones.

Las personas acceden y consultan al movil unas 80-100 veces al día

En España, hay 51,7 millones de tarjetas de crédito, lo que supone una media de más de una tarjeta de crédito por habitante, realizándose más de 3,5 millones de operaciones al año.

Piénsese en la cantidad tan enorme de datos.



1. Algoritmos




2. Análisis y minería de datos


3. Importancia de los algoritmos




Para saber más y ampliar conocimientos

- Lectura: IRTIC-U. de Valencia. Algoritmos y su complejidad (pdf)
- Lectura: IRTIC-U. de Valencia. Algoritmos y programas (pdf)

Leer más