Eligiendo algoritmos: El caso de ordenamiento
|
|
- Martín Blázquez Navarrete
- hace 8 años
- Vistas:
Transcripción
1 Eligiendo algoritmos: El caso de ordenamiento Horst H. von Brand * Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, Chile vonbrand@inf.utfsm.cl Abstract The problem of sorting an array is one of the fundamental problems in computer science, and is furthermore simple to understand. Many interesting algorithms have been devised for this problem. The algorithms serve as good examples of algorithm design strategies and programming techniques. Some of the algorithms can be analyzed easily, so they also offer an opportunity to discuss the selection of an algorithm depending on the specific situation. This paper roughly follows the classes in which several sorting algorithms are developed. The exposition style exemplified here has been used successfully in a data structures course. Keywords: Teaching methodology, programming, data structures Resumen El problema de ordenar los elementos de un arreglo es uno de los problemas fundamentales de la ciencia de la computación, y es simple de entender. Se han desarrollado variados e interesantes algoritmos para este problema. Sirven de ejemplos de técnicas de diseño de algoritmos, y los que son sencillos de analizar dan ejemplos de esta tarea. La variedad de algoritmos y sus características dan la oportunidad de mostrar cómo elegir un algoritmo para un uso específico. El presente trabajo resume las clases en la que se desarrollan los algoritmos, su análisis, y la discusión de los criterios de selección. El estilo de exposición ejemplificado acá ha sido usado con éxito en un curso de estructuras de datos. Palabras clave: Metododología de enseñanza, programación, estructuras de datos * Apoyado por el proyecto BMBF-CH-99/023 UTFSM/DGIP - Intelligent Data Mining in Complex Systems/ (Alemania y Chile). Aportes de proyectos UTFSM (Chile) y FONDECYT (Chile) Agradezco además a mis alumnos, quienes hicieron valiosos aportes durante los años.
2 1. Introducción Un problema fundamental de la computación es ordenar datos según algún criterio de orden. El caso más simple se da cuando los datos están en un arreglo. Para este caso se ha desarrollado una variedad de algoritmos, que dan buenos ejemplos de cómo desarrollar algoritmos desde una idea básica, y luego llevar esta idea a un programa claro y eficiente en algún lenguaje de programación. Además, al contar con una variedad de algoritmos para un mismo problema da lugar a discutir criterios a emplear para elegir entre las distintas opciones, lo que lleva inevitablemente a hacer análisis (aún someros) de los algoritmos planteados. No se tratará el diseño detallado desarrollado en clase que lleva a los programas presentados acá. 2. Contenidos tratados Los algoritmos desarrollados en detalle en el curso son seis. Tres de ellos son los algoritmos simples fundamentales: Métodos de la burbuja (basado en intercambios), inserción, y selección. Se trata el algoritmo de Shell-Metzner como una variante simple de inserción. Como algoritmos más complejos se discuten heapsort y quicksort Preliminares Los programas desarrollados en clase para estos algoritmos corresponden a las descripciones de textos standard, como [3, 4]. Se presupone que los estudiantes conocen los valores de sumatorias simples, como series aritméticas y geométricas. Se ha explicado que el obtener medidas precisas de rendimiento (tiempo, en el caso que nos ocupa) en general significa mucho trabajo, y que para la mayor parte de los efectos basta con aproximaciones bastante burdas. En particular, se insiste en fijarse únicamente en algunas de las operaciones del algoritmo (comparaciones y asignaciones en el caso presente), cuidando que las demás operaciones en el programa guardan una relación de aproximada proporcionalidad con las operaciones contabilizadas. Se definió la notación f (N) = O(g(N)) para indicar órdenes de magnitud de crecimiento de funciones. Se han discutido también los costos relativos del esfuerzo humano contra el tiempo de cómputo ahorrado, siguiendo las directrices en [1, 2]. Al hablar de los análisis a efectuar se considera también el costo de hacer análisis más detallados que los que se muestran acá contra el posible beneficio de mayor precisión, y se ha planteado la opción de efectuar mediciones sobre prototipos de las alternativas para la decisión final si aún hay dudas con el resultado del análisis. El análisis de rendimiento de los algoritmos es somero, se remite únicamente a analizar los casos extremos. El análisis de los promedios es relativamente complejo, y escapa claramente los objetivos del ramo presente. Durante la discusión se hace frecuente referencia al código de los programas desarrollados antes para cada uno de los algoritmos. Los estudiantes están familiarizados en detalle con los algoritmos, dado que se discutieron diversas maneras de implementarlos durante su desarrollo, y se mostró con conjuntos de datos cómo opera cada algoritmo durante su diseño, lo que luego se verificó trazando los programas con ellos Métodos elementales En una primera sesión se comparan los métodos simples de ordenamiento desarrollados antes: Método de la burbuja (ver listado 1), selección simple (listado 2), e inserción (listado 3). Se detalla cómo el rendimiento de los diferentes métodos depende del orden en que vienen los datos originalmente. Un momento de reflexión muestra que el mejor caso para los tres algoritmos es cuando los datos ya están ordenados, y el peor caso se da cuando están en orden inverso. También queda claro de un análisis somero que los tres métodos son O(N 2 ), por lo que es necesario hacer un análisis un poco más detallado para compararlos. Por ejemplo, al venir los N datos ya ordenados, el método de la burbuja sólo compara cada elemento con su vecino (lo que significa 1 i N 1 i = N(N 1)/2 comparaciones en total) y no efectúa asignaciones. Está claro que hay una serie de operaciones adicionales (acceder a los elementos del arreglo a ser comparados, manipulaciones de los índices a través de los for), que en total aportarán en forma proporcional al número de comparaciones efectuadas al tiempo de ejecución. Si los datos vienen en orden inverso, efectúa el mismo número de comparaciones, y ese mismo número de intercambios (o sea, 3N(N 1)/2 asignaciones en total). Selección simple (ver listado 2) efectúa siempre la misma cantidad de comparaciones, ninguna asignación en caso que los elementos vengan ya ordenados, y tan sólo 3(N 1) asignaciones (un intercambio por cada uno de N 1 elementos) en el caso en que los elementos vengan en orden inverso. Para el método de inserción (ver listado 3) está claro que en caso que los elementos estén ya ordenados se ejecutan N 1 comparaciones y ninguna asignación, mientras que en caso que vengan en orden inverso se efectúan i+1 asignaciones cuando se ubica el elemento i-ésimo en su lugar, para un total de 2 i N (i + 1) = (N + 4)(N 1)/2 asignaciones.
3 i n t i, j, k ; for ( i = n 1 ; i ; i = k ) k = 0 ; for ( j = 0 ; j < i ; j ++) i f ( a [ j + 1 ] < a [ j ] ) tmp = a [ j ] ; a [ j ] = a [ j + 1 ] ; a [ j + 1 ] = tmp ; k = j ; i = k ; Listado 1: Método de la burbuja i n t i, j, k ; double min, tmp ; for ( i = 0 ; i < n ; i ++) k = i ; min = a [ i ] ; for ( j = i + 1 ; j < n ; j ++) i f ( a [ j ] < min ) k = j ; min = a [ j ] ; tmp = a [ i ] ; a [ i ] = a [ k ] ; a [ k ] = tmp ; Listado 2: Selección simple De la tabla 1 que resume la discusión anterior 1 se desprende que el método de selección es claramente el más ventajoso en lo que respecta a asignaciones, siendo el peor en términos de comparaciones (el número de comparaciones que efectúa es constante). El método de inserción es mejor que el método de la burbuja en términos de asignaciones siempre que N > 2. Para N grande, se aprecia que el número de asignaciones que efectúa en el peor caso el método de la burbuja es aproximadamente el triple que para el método de inserción. Intuitivamente, esta diferencia (que se debe a que el método de la burbuja intercambia elementos, a costa de 3 asignaciones, cuando el método de inserción sólo mueve un elemento, a costa de 1 asignación) debiera mantenerse en el caso promedio. 1 Los programas dados en los listados no incluyen las modificaciones obvias para evitar asignaciones inútiles, que se asumen en la tabla Método Comparaciones Assignaciones Mínimo Máximo Mínimo Máximo Burbuja N 1 N(N 1)/2 0 3N(N 1)/2 Selección N(N 1)/2 N(N 1)/2 0 3(N 1) Inserción N 1 N(N 1)/2 0 (N + 4)(N 1)/2 Cuadro 1: Comparación de los métodos elementales
4 i n t i, j ; for ( i = 1 ; i < n ; i ++) tmp = a [ i ] ; for ( j = i 1 ; j >= 0 && tmp < a [ j ] ; j ) a [ j + 1 ] = a [ j ] ; a [ j + 1 ] = tmp ; Listado 3: Método de inserción El que haga menos comparaciones en el mejor caso lo hace aparecer aún más ventajoso. En términos cualitativos, está claro que el método de inserción hace poco más que una asignación por posición que mueve un elemento, mietras el método de la burbuja hace tres. Si se asume que ambos mueven aproximadamente los elementos la misma suma de distancias, está claro que el método de inserción resultará más eficiente. Además, un momento de reflexión muestra que el número de asignaciones y comparaciones que hace será aproximadamente proporcional a la suma de las distancias que los elementos deben ser movidos, y ésta será pequeña siempre que los elementos estén cerca de sus posiciones finales en el arreglo ordenado, o sea, si los datos vienen casi ordenados. Así, en este caso (bastante común en la práctica) este método es muy atractivo. Desde el punto de la complejidad de los programas, no hay gran diferencia entre los tres métodos Métodos más complejos Luego se comparan los métodos Shellsort (listado 4), heapsort (listado 5), y quicksort (listado 6). i n t i, j, h ; / Generate increment sequence / for ( h = 1 ; 3 h + 1 < n ; h = 3 h + 1 ) ; do h / = 3 ; for ( i = h ; i < n ; i ++) tmp = a [ i ] ; for ( j = i h ; j >= 0 && tmp < a [ j ] ; j = h ) a [ j + h ] = a [ j ] ; a [ j + h ] = tmp ; while ( h > 1 ) ; Listado 4: Shellsort El análisis de shellsort es extremadamente complejo y no se ha completado aún, y por tanto simplemente se mencionan los resultados empíricos que indican un tiempo de ejecución promedio de ya sea O(N 1,25 ) o O(N log 2 N) para la secuencia de incrementos planteada. La versión de Shellsort discutida en clase es la del listado 4, que como se aprecia no mucho más compleja que el método de inserción, listado 3. Algunas de las condiciones sobre la secuencia de incrementos son que no hayan factores comunes entre incrementos sucesivos (cosa que nuestra variante asegura), y que disminuyan rápidamente (decrecen en forma casi exponencial acá). Esto se discute cualitativamente en clase. No se conocen ni el mejor ni el peor
5 tiempo en este caso. Se arguye que usar inserción para manejar las subsecuencias resultantes en Shellsort es la mejor opción, de forma de aprovechar el orden parcial que se va generando. s t a t i c void downheap ( double [ ], int, i n t ) ; s t a t i c void swap ( double, double ) ; i n t i ; / Make heap / for ( i = n / 2 1 ; i >= 0; i ) downheap ( a, i, n ) ; / Sort / swap(&a [ 0 ], & a [ n 1 ] ) ; for ( i = n 1 ; i > 1 ; i ) downheap ( a, 0, i ) ; swap(&a [ 0 ], & a [ i 1 ] ) ; s t a t i c void downheap ( double a [ ], i n t l, i n t u ) i n t j, k ; j = l ; tmp = a [ j ] ; for ( ; ; ) k = 2 j + 1 ; i f ( k >= u ) break ; i f ( k + 1 < u && a [ k + 1 ] > a [ k ] ) k ++; i f ( tmp > a [ k ] ) break ; a [ j ] = a [ k ] ; j = k ; a [ j ] = tmp ; s t a t i c void swap ( double pa, double pb ) tmp = pa ; pa = pb ; pb = tmp ; Listado 5: heapsort En el caso de heapsort (listado 5) un análisis somero es fácil de efectuar. En la primera fase se construye un heap, que como árbol binario completo tiene altura aproximada log 2 N. En el proceso se van integrando en el heap la mitad de los elementos, y en el peor caso cada uno de ellos recorrerá el camino completo desde su actual posición en el árbol hasta el final (posición de hoja). En la segunda fase se van eliminando uno a uno los N elementos del heap, y al reconstruir el heap hay N 1 elementos que en el peor caso recorrerán el camino de la raíz a una hoja. Está claro que el total es siempre O(N logn), sin gran variación, dado que en la segunda fase se toma siempre el último elemento del arreglo (que es una hoja) para ubicarlo en la raíz y hacerlo
6 bajar a la posición que le corresponde. Seguramente terminará nuevamente como hoja, haciendo el recorrido completo. La estuctura heap da lugar a discutir sobre colas de prioridad y su implementación eficiente. Se mencionan algunas aplicaciones prácticas, como la administración de eventos en simulación por eventos discretos. i n t i, j ; double piv, tmp ; i f ( n > 1) p i v = a [ 0 ] ; i = 0 ; j = n ; do do i + + ; while ( i < n && a [ i ] < p i v ) ; do j ; while ( a [ j ] > p i v ) ; tmp = a [ j ] ; a [ j ] = a [ i ] ; a [ i ] = tmp ; while ( i < j ) ; / Place p i v o t, undo e x t r a swap / a [ i ] = a [ j ] ; a [ j ] = a [ 0 ] ; a [ 0 ] = tmp ; s o r t ( a, j ) ; s o r t ( a + j + 1, n j 1 ) ; Listado 6: Quicksort simple En el caso de quicksort el análisis es más complejo. Se argumenta que el peor caso resulta cuando en cada paso se elige el pivote de forma que queda de primero o último en el arreglo. Así, después de la i-ésimo partición quedan N i elementos a ordenar. Como cada partición claramente demanda trabajo proporcional al largo de la sección considerada, el trabajo total será proporcional a 0 i N 1 (N i) = N(N 1)/2. Se menciona que un análisis detallado muestra que el tiempo promedio es O(N logn) así como también el mejor caso. Se destaca que quicksort tiene ciclos internos muy simples (en el proceso de partición), lo que hace que sea extremadamente rápido (de allí su nombre). La variante sencilla de quicksort desarrollada inicialmente en clase (ver listado 6) se extiende luego para mostrar varias técnicas avanzadas, como elegir el pivote como la mediana de tres elementos (el primero, el último, y uno central; incidentalmente ordenar estos tres provee centinelas naturales para ambas búsquedas, haciendolas más rápidas), eliminación de recursión de cola (se indica que un compilador astuto hará esta tarea por sí mismo, por lo que es importante investigar ésto antes de complicar el programa sin provecho real), y terminar la recursión tempranamente para finalizar el trabajo con inserción (que es la mejor técnica para este trabajo según la discusión previa, dado que los datos resultan estar cerca de sus posiciones finales). La discusión anterior se resume en la tabla 2, que muestra los tiempos de ejecución en órdenes de magnitud para los métodos descritos Resumen de la evaluación Método Mínimo Media Máximo Shellsort? O(N log 2 N)? Heapsort O(N log N) O(N log N) O(N log N) Quicksort O(N logn) O(N logn) O(N 2 ) Cuadro 2: Comparación entre los métodos más complejos Resumiendo la discusion anterior, se ve que los métodos elementales tienen ventaja de simplicidad de código y son competitivos para arreglos pequeños. Se concluye que de los métodos elementales el método de inserción resulta ser el más adecuado para uso general, y que es ventajoso incluso para grandes volúmenes de datos cuando éstos ya están parcialmente ordenados. El método de selección es adecuado cuando los elementos son muy voluminosos (y por tanto las asignaciones
7 dominan el tiempo de ejecución). Pero en tales casos cabe considerar la opción de manejar índices o punteros a los datos mismos, y evitar moverlos (o sólo reorganizarlos una vez se haya completado el ordenamiento). Entre los métodos más complejos se destaca por su simplicidad de código Shellsort, que muestra buen rendimiento. Sin embargo, tiene la desventaja de que se desconocen sus parámetros de rendimiento. Heapsort es más complejo de programar y entender, y tiene la ventaja de tener tiempo de ejecución garantizado, poco variable. Quicksort es en promedio lejos el más rápido, pero su peor caso es muy malo. Además, el programa es frágil. 3. Conclusiones A través del desarrollo en detalle de seis métodos de ordenamiento de arreglos se pueden introducir ideas importantes de diseño de programas, nociones de análisis de algoritmos, y mostrar cómo pueden aplicarse criterios racionales para la selección de un método para resolver un problema dado. Los programas presentados son cortos (tal vez una docena de líneas cada uno). A pesar de ésto se requiere un análisis detallado para diseñarlos (así como para entenderlos). Se enfatiza así lo complejo que resulta diseñar, codificar, y verificar un programa, y el efecto que las características del método empleado pueden tener sobre estas tareas. Referencias [1] Jon Bentley. Programming Pearls. Prentice Hall, second edition, [2] Jon Louis Bentley. Writing Efficient Programs. Prentice Hall, [3] Donald E. Knuth. Sorting and Searching, volume 3 of The Art of Computer Programming. Addison-Wesley, second edition, [4] Robert Sedgewick. Algorithms. Addison-Wesley, 1984.
Ampliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesCómo ordenar una lista de números?
Cómo ordenar una lista de números? Germán Ariel Torres Resumen. Este trabajo trata acerca de métodos y técnicas usadas para el ordenamiento eficiente de listas de números. Se analizan los métodos básicos,
Más detallesÁrboles AVL. Laboratorio de Programación II
Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus
Más detallesEl modelo de ciclo de vida cascada, captura algunos principios básicos:
Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto de desarrollo de software. El primer ciclo de vida del software, "Cascada",
Más detallesProgramación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesDescripción y tablas de especificaciones de las pruebas formativas. Área Matemática 2015
Descripción y tablas de especificaciones de las pruebas formativas Área Matemática 2015 De 3 de Primaria a 3 de Media Contenidos El referente conceptual de la evaluación... 3 CUADRO 1. TABLA DE ESPECIFICACIONES
Más detallesCapitulo V Administración de memoria
Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal
Más detallesCapítulo 5: METODOLOGÍA APLICABLE A LAS NORMAS NE AI
Capítulo 5: METODOLOGÍA APLICABLE A LAS NORMAS NE AI La segunda fase del NIPE corresponde con la adecuación de las intervenciones de enfermería del sistema de clasificación N.I.C. (Nursing Intervention
Más detallesAHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina 25. 28108 Alcobendas, Madrid. www.ahorracom.com
PAGTE Plan de Ahorro y Gestión de Telecomunicaciones para Empresas En Ahorracom nos ponemos de su parte. Por eso nos interesa que usted, nuestro cliente, esté al tanto de todos los procesos que llevamos
Más detallesCapítulo 9. Archivos de sintaxis
Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta
Más detalles2 EL DOCUMENTO DE ESPECIFICACIONES
Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir
Más detalles4 Pruebas y análisis del software
4 Pruebas y análisis del software En este capítulo se presentan una serie de simulaciones donde se analiza el desempeño de ambos sistemas programados en cuanto a exactitud con otros softwares que se encuentran
Más detallesGUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es
Más detallesUNIDADES FUNCIONALES DEL ORDENADOR TEMA 3
UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:
Más detallesBase de datos en Excel
Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de
Más detallesPlan de Gestión de Configuración. Universidad Nacional de la Patagonia Austral
Plan de Gestión de Configuración Universidad Nacional de la Patagonia Austral Temario 1. Gestión de Configuración de Software 1.1 Definición 2. Plan de SCM 2.1 Estructura Organizacional 2.2 Actividades
Más detallesRedes de área local: Aplicaciones y servicios WINDOWS
Redes de área local: Aplicaciones y servicios WINDOWS 4. Servidor DNS 1 Índice Definición de Servidor DNS... 3 Instalación del Servidor DNS... 5 Configuración del Servidor DNS... 8 2 Definición de Servidor
Más detallesPRODUCTIVIDAD DE PROYECTOS DE DESARROLLO DE SOFTWARE: FACTORES DETERMINANTES E INDICADORES
PRODUCTIVIDAD DE PROYECTOS DE DESARROLLO DE SOFTWARE: FACTORES DETERMINANTES E INDICADORES Raúl Palma G. y Guillermo Bustos R. Escuela de Ingeniería Industrial Universidad Católica de Valparaíso Casilla
Más detallesPráctica 5. Curso 2014-2015
Prácticas de Seguridad Informática Práctica 5 Grado Ingeniería Informática Curso 2014-2015 Universidad de Zaragoza Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas
Más detallesConclusiones. Particionado Consciente de los Datos
Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser
Más detallesby Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad
Más detallesGestión de Configuración del Software
Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software
Más detallesOperación Microsoft Access 97
Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe
Más detalles1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1
5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0
Más detallesClase 32: Árbol balanceado AVL
Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes
Más detallesTema 3. Medidas de tendencia central. 3.1. Introducción. Contenido
Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6
Más detallesManejo de versiones 392
Manejo de versiones 392 El desarrollo de software es un trabajo en equipo y cierto grado de confusión es inevitable. No puedo reproducir el error en esta versión! Qué pasó con el arreglo de la semana pasada?
Más detallesU.T. 2 Planificación de Proyectos
U.T. 2 Planificación de Proyectos En el tema anterior hemos visto que es determinante una buena planificación del proyecto, ya que de no realizarse ésta, nunca sabremos el tiempo que resta para la finalización
Más detalles1.2 SISTEMAS DE PRODUCCIÓN
19 1.2 SISTEMAS DE PRODUCCIÓN Para operar en forma efectiva, una empresa manufacturera debe tener sistemas que le permitan lograr eficientemente el tipo de producción que realiza. Los sistemas de producción
Más detallesCREACIÓN DE UN DEPARTAMENTO DE RELACIONES PÚBLICAS PARA LOS ALMACENES EL CHOCHO Y EL CAMPEÓN
PROPUESTA: CREACIÓN DE UN DEPARTAMENTO DE RELACIONES PÚBLICAS PARA LOS ALMACENES EL CHOCHO Y EL CAMPEÓN Cómo sabemos cada día las empresas se enfrentan a un mundo globalizado, con retos empresariales,
Más detallesPresentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:
UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera
Más detallesConvergencia del ingreso per cápita en los países miembros del FLAR
Convergencia del ingreso per cápita en los países miembros del FLAR La convergencia macroeconómica, en un sentido amplio, puede definirse como el proceso a través del cual disminuyen las diferencias entre
Más detallesEs de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado.
DIAGRAMA DE AÁRBOL 1.- INTRODUCCIÓN Este documento describe el proceso de construcción de un Diagrama de Árbol, mediante el cual se dispone de una metodología simple y sistemática para la identificación
Más detallesSorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Más detallesEstructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
Más detallesCARTILLA TIPOS DE PRESUPUESTO
CARTILLA TIPOS DE PRESUPUESTO SENA CENTRO NACIONAL DE LA CONSTRUCCIÓN MEDELLÍN, 2004 TIPOS DE PRESUPUESTO 1. PRESUPUESTO GLOBAL Es aquel en el cual se presenta el valor total del proyecto sin ningún tipo
Más detallesEjercicio de estadística para 3º de la ESO
Ejercicio de estadística para 3º de la ESO Unibelia La estadística es una disciplina técnica que se apoya en las matemáticas y que tiene como objetivo la interpretación de la realidad de una población
Más detallesINSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un
INSTRODUCCION Toda organización puede mejorar su manera de trabajar, lo cual significa un incremento de sus clientes y gestionar el riesgo de la mejor manera posible, reduciendo costes y mejorando la calidad
Más detallesIncidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.
Apadrinamiento ONG Estudio preliminar: Se desea diseñar una aplicación para la gestión de los apadrinamientos de una asociación ONG. Para ello el sistema proporcionara una interfaz al usuario para poder
Más detallesCAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de
CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,
Más detallesGuías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online
Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...
Más detallesREDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS
REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación
Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado
Más detalles1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE
MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4
Más detallesGestión de la Configuración
Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de
Más detallesPlan de tarificación. Redes telefónicas. Requisitos a cumplir por el plan.
Redes telefónicas Plan de tarificación Plan de tarificación Requisitos a cumplir por el plan Métodos de tarificación Llamadas locales Llamadas a larga distancia Métodos de registro de llamadas Tarifas
Más detallesSistema de Facturación de Ventas WhitePaper Enero de 2007
Sistema de Facturación de Ventas WhitePaper Enero de 2007 Ronda Guglielmo Marconi, 9 Parque Tecnológico 46980 Paterna Valencia Spain T +34 96 338 99 66 ventas@preference.es Please Recycle PrefSuite Document
Más detalles2. Entorno de trabajo y funcionalidad en Arquímedes
2. Entorno de trabajo y funcionalidad en Arquímedes 2.9. Presupuestos comparativos. Cómo contrastar ofertas... 1 2.9.1. Análisis de los datos del comparativo de presupuestos... 4 2.9.2. Ejemplo de comparativo
Más detallesADMIRAL MARKETS AS. Normas de Ejecución Óptima. medida en que ha actuado de acuerdo con las correspondientes instrucciones del cliente.
ADMIRAL MARKETS AS Normas de Ejecución Óptima 1. Disposiciones Generales 1.1. Estas Normas de Ejecución Óptima (de aquí en adelante Normas ) estipularán los términos, condiciones y principios sobre los
Más detallesImplementación de algoritmos genéticos paralelos de grano burdo en redes locales de computadoras. Resumen
Implementación de algoritmos genéticos paralelos de grano burdo en redes locales de computadoras. Arturo Gómez Cortés y Raúl Leal Ascencio ITESO, Guadalajara Resumen El presente trabajo describe una arquitectura
Más detallesRESULTADOS CONSULTA CIUDADANA VIRTUAL. Consulta Laboral en Línea
RESULTADOS CONSULTA CIUDADANA VIRTUAL Consulta Laboral en Línea Septiembre, 2015 1 Agradecimientos Ponemos a disposición de ustedes los resultados de la Consulta Ciudadana Virtual, efectuada en julio de
Más detallesPropuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)
Más detallesARREGLOS DEFINICION GENERAL DE ARREGLO
ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesSIIGO PYME PLUS. Proceso de Recuperación. Cartilla I
SIIGO PYME PLUS Proceso de Recuperación Cartilla I Tabla de Contenido 1. Presentación 2. Qué es el Proceso de Recuperación? 3. Cuál es el Objetivo del Proceso de Recuperación? 4. Cuáles son los Pasos que
Más detallesGuía para Desarrollo de Sitios Web - Gobierno de Chile
www.guiaweb.gob.cl > 109 110 < www.guiaweb.gob.cl La Guía en Internet: www.guiaweb.gob.cl Guía para Desarrollo de Sitios Web - Gobierno de Chile Como se ha indicado en los capítulos iniciales, esta Guía
Más detalleswww.fundibeq.org Además se recomienda su uso como herramienta de trabajo dentro de las actividades habituales de gestión.
TORMENTA DE IDEAS 1.- INTRODUCCIÓN Este documento sirve de guía para la realización de una Tormenta de Ideas, también llamado "Brainstorming o Lluvia de ideas, la herramienta por medio de la cual se puede
Más detallesApp para realizar consultas al Sistema de Información Estadística de Castilla y León
App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda
Más detallesServicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción... 2. Barra de Herramientas...
Indice Página Introducción... 2 Acceso al Sistema... 3 Barra de Herramientas... 4 Menú Principal... 5 Operación Catálogos Reportes Consultas Entradas Por Orden de Compra... 6 Entradas Directas... 8 Salidas
Más detallesPROGRAMACIÓN DE FOL FAMILIA PROFESIONAL COMERCIO Y MARKETING
PROGRAMACIÓN DE FOL FAMILIA PROFESIONAL COMERCIO Y MARKETING CICLOS FORMATIVOS DE GRADO SUPERIOR GESTIÓN COMERCIAL Y MARKETING, Y GESTIÓN DEL TRANSPORTE PROYECTO @VANZA I.E.S. MAESTRO DOMINGO CÁCERES (BADAJOZ)
Más detallesESTUDIO DE SEGURIDAD DEL SECTOR COMERCIAL
C CÁMARA DE COMERCIO DE COSTA RICA ESTUDIO DE SEGURIDAD DEL SECTOR COMERCIAL MEDICIÓN ANUAL 2012 ESTUDIO DE SEGURIDAD DEL SECTOR COMERCIAL MEDICION ANUAL DEL 2012 LOS COSTOS DE LA INSEGURIDAD DEL SECTOR
Más detallesTEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA
TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido
Más detallesCASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS
CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS Nuestra empresa es una pequeña editorial que maneja habitualmente su lista de ventas en una hoja de cálculo y desea poder realizar un análisis de sus
Más detallesEstructuras de datos: Proyecto 2
Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe
Más detallesInterés Simple y Compuesto
Interés Simple y Compuesto Las finanzas matemáticas son la rama de la matemática que se aplica al análisis financiero. El tema tiene una relación cercana con la disciplina de la economía financiera, que
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents
Más detallesContenido - 2. 2006 Derechos Reservados DIAN - Proyecto MUISCA
Contenido 1. Introducción...3 2. Objetivos...4 3. El MUISCA Modelo Único de Ingresos, Servicio y Control Automatizado...4 4. Ingreso a los Servicios Informáticos Electrónicos...5 4.1. Inicio de Sesión
Más detallesANALIZANDO GRAFICADORES
ANALIZANDO GRAFICADORES María del Carmen Pérez E.N.S.P.A, Avellaneda. Prov. de Buenos Aires Instituto Superior del Profesorado "Dr. Joaquín V. González" Buenos Aires (Argentina) INTRODUCCIÓN En muchos
Más detallesActualizaciones de programas y actualizaciones periódicas de software
Suscripción a Mantenimiento y asistencia de DocuWare Product Info Proteja su ventaja competitiva Su organización se enfrenta cada día a la competencia. Usted invirtió en DocuWare por un motivo: para obtener
Más detallesSÍNTESIS Y PERSPECTIVAS
SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.
Más detallesLOGISTICA D E COMPRAS
LOGISTICA D E COMPRAS 1. - Concepto de compras OBTENER EL (LOS) PRODUCTO(S) O SERVICIO(S) DE LA CALIDAD ADECUADA, CON EL PRECIO JUSTO, EN EL TIEMPO INDICADO Y EN EL LUGAR PRECISO. Muchas empresas manejan
Más detallesIntroducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas
Más detallesGENERALIDADES DE BASES DE DATOS
GENERALIDADES DE BASES DE DATOS A fin de evitar que idénticos datos se encuentren repetidos en múltiples archivos, parece necesario que los comunes se almacenen en un archivo único y que este archivo sea
Más detallesCAPITULO I. Introducción. En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y
CAPITULO I Introducción 1.1 Introducción En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y redes computacionales. La tecnología ha ido evolucionando constantemente
Más detallesFormas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007
Formas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007 Contenidos 1. Propósito 3 2. Cuentas Bancarias 4 2.1. Dar de alta un banco 4 3. Formas de pago 6 3.1. Cómo crear formas de pago
Más detallesMANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD
MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...
Más detallesCuatro preguntas para entender el proyecto que planea construir el INE
Cuatro preguntas para entender el proyecto que planea construir el INE El proyecto de nuevo edificio del INE forma parte del Plan Inmobiliario del Instituto que se encuentra en marcha. El Plan consiste
Más detallesAsignaturas antecedentes y subsecuentes
PROGRAMA DE ESTUDIOS Base de Datos I Área a la que pertenece: Área Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0156 Base de Datos II Asignaturas antecedentes y subsecuentes
Más detallesESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Medidas de Tendencia Central y Dispersión
Descargado desde www.medwave.cl el 13 Junio 2011 por iriabeth villanueva Medwave. Año XI, No. 3, Marzo 2011. ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Medidas de Tendencia Central y Dispersión Autor:
Más detallesCOMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA
COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA PROGRAMA DE EFICIENCIA ENERGÉTICA SISTEMA DE CONTROLY SEGUIMIENTO DE INDICADORES DEL CONSUMO DE ENERGÍA HERRAMIENTA ELECTRÓNICA DE INDICADORES DEL CONSUMO DE
Más detallesDecisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.
Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El
Más detallesSeis Sigma. Nueva filosofía Administrativa.
Seis Sigma. Nueva filosofía Administrativa. GIN. Filosofía de Calidad. El Seis Sigma es un parámetro cuya base principal es la desviación estándar y su enfoque es reducir la variación y/o defectos en lo
Más detallesTratamiento del Riesgo
Tratamiento del Riesgo 1 En que consiste el tratamiento de los riesgos? 2. Cuando debemos enfrentarnos a los riesgos? 3. Estrategias de tratamiento de riesgos 4. Modelo de Análisis de Riesgos 5. Qué pasos
Más detallesESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos
Descargado desde www.medwave.cl el 13 Junio 2011 por iriabeth villanueva Medwave. Año XI, No. 2, Febrero 2011. ESTADÍSTICA APLICADA A LA INVESTIGACIÓN EN SALUD Construcción de una Base de Datos Autor:
Más detallesCierre de Ejercicios Fiscales en el Sistema ASPEL-COI 4.0
Cierre de Ejercicios Fiscales en el Sistema ASPEL-COI 4.0 La creación de la póliza de cierre consiste en saldar las cuentas de resultados y determinar la pérdida o ganancia contable del ejercicio. Este
Más detallesSimuladores de cálculo. Estimación de la Prestación de jubilación de la Seguridad Social y complemento por: Seguro ahorro, PIAS, PPA, PLAN PENSIONES
Simuladores de cálculo Estimación de la Prestación de jubilación de la Seguridad Social y complemento por: Seguro ahorro, PIAS, PPA, PLAN PENSIONES Año 2014 INICIO TOMA DE DATOS: OBJETIVO DEL SIMULADOR:
Más detalles- 0 - www.costaricanhotels.com
- 0 - - 1 - Contenido 1. Introducción... 2 2. Resumen Ejecutivo... 2 3. Objetivos del Estudio... 3 3.1. General... 3 3.2. Específicos... 3 4. Distribución de la Muestra... 3 5. Resultados Enero 2015...
Más detallesESTE PROGRAMA ES COFINANCIADO POR MÉXICO Y LA UNIÓN EUROPEA
Jornada FONCICYT Tratamiento de los Derechos de Propiedad Intelectual en el marco de consorcios de investigación, desarrollo tecnológico e innovación entre México y la Unión Europea México, 10 de julio
Más detallesTABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
Más detallesUnidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)
Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.
Más detallesManual de rol gestor de GAV para moodle 2.5
Manual de rol gestor de GAV para moodle 2.5 Consultas LDAP-GAUR... 2 Buscar en LDAP datos de un usuario... 2 Docentes... 3 Buscar en GAUR datos de un docente... 3 Buscar en GAUR la docencia de un docente
Más detallesInforme de Sam Sample
Informe de Sam Sample Análisis de Aptitudes Página 2 2005-2009 Saville Consulting. Todos los derechos reservados. Contenidos Introducción al Informe de Evaluación... 3 Perfil del Análisis de Aptitudes...
Más detallesMETODOLOGÍA PARA LA MEJORA Y DIGITALIZACIÓN DE TRÁMITES. Etapa 1: Diagnóstico Cómo es mi proceso actual?
METODOLOGÍA PARA LA MEJORA Y DIGITALIZACIÓN DE TRÁMITES Etapa 1: Diagnóstico Cómo es mi proceso actual? El primer paso para mejorar un trámite, ya sea con miras a digitalizarlo o solo para mejorarlo en
Más detallesAnálisis de Resultados
Análisis de Resultados Encuesta Web OnLine Buses: www.encuesta-webonlinebuses.tk Grupo10 1 Datos Generales Técnica: Encuesta Web Medio: Google Forms Unidad de muestreo: Usuarios y potenciales usuarios
Más detallesControl Estadístico de Procesos
Control Estadístico de Procesos Gráficos de Control Los gráficos de control o cartas de control son una importante herramienta utilizada en control de calidad de procesos. Básicamente, una Carta de Control
Más detallesGuadalinex Básico Impress
1 IMPRESS: Editor de Presentaciones Impress es un programa con el que podemos crear diapositivas, transparencias y presentaciones con una variada gama de efectos sin demasiadas complicaciones. Objetivos:
Más detallesPrograma de Consultoría en Gerencia del Valor
Programa de Consultoría en Gerencia del Valor Enfocado a Pequeñas y Medianas Empresas Dirigido por OSCAR LEÓN GARCIA S. Consultor empresarial especializado en valoración de empresas y gerencia del valor.
Más detallesEL MÉTODO PERT. Para ello debemos seguir 4 pasos:
EL MÉTODO PERT El método PERT (Program Evaluation and Review Technique Técnica de evaluación y revisión de programas) es un método que sirve para planificar proyectos en los que hace falta coordinar un
Más detalles1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet.
Preguntas Frecuentes: 1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet. Cada computadora en Internet tiene
Más detalles