Una clave importante para el diseño de algoritmos es usar la clasificación como un elemento básico, porque una vez que se ordena un conjunto de elementos, muchos otros problemas se vuelven fáciles. Considere las siguientes aplicaciones del mundo real.
Aplicaciones comunes de clasificación:
- Búsqueda : la búsqueda binaria le permite probar si un elemento está en un diccionario en el tiempo O (lg n), una vez que todas las claves están ordenadas. El preprocesamiento de búsqueda es quizás la aplicación más importante de clasificación.
- Par más cercano : dado un conjunto de n números, ¿cómo encuentra el par de números que tienen la menor diferencia entre ellos? Después de ordenar los números, el par de números más cercano se ubicará uno al lado del otro en algún lugar en orden ordenado.
- Unicidad del elemento : ¿hay duplicados en un conjunto dado de n elementos? El algoritmo más eficiente es ordenarlos y luego hacer un escaneo lineal a través de ellos, verificando todos los pares adyacentes.
- Distribución de frecuencia : dado un conjunto de n elementos, ¿qué elemento aparece la mayor cantidad de veces en el conjunto? Si los elementos están ordenados, podemos barrer de izquierda a derecha y contarlos, ya que todos los elementos idénticos se agruparán durante la clasificación.
- Selección : ¿Cuál es el kº elemento más grande del conjunto? Si las claves se colocan en orden ordenado en una matriz, la k ésima más grande se puede encontrar en tiempo constante simplemente mirando la posición k de la matriz.
- Cascos convexos : dados n puntos en dos dimensiones, ¿cuál es el polígono del área más pequeña que los contiene a todos? El casco convexo es como una banda elástica que se extiende sobre los puntos del avión y luego se suelta. Pero, ¿cómo podemos usar la clasificación para construir el casco convexo? Una vez que haya ordenado los puntos por la coordenada x , los puntos se pueden insertar de izquierda a derecha en el casco. Como el punto más a la derecha siempre está en el límite, sabemos que se insertará en el casco. Agregar este nuevo punto más a la derecha puede hacer que se eliminen otros, pero podemos identificar rápidamente estos puntos porque se encuentran dentro del polígono formado al agregar el nuevo punto. Estos puntos a eliminar serán vecinos del punto anterior que insertamos, por lo que serán fáciles de encontrar. El tiempo total es lineal después de que se haya realizado la clasificación.
Si bien algunos de estos problemas (en particular, la mediana y la selección) se pueden resolver en tiempo lineal utilizando algoritmos más sofisticados, la clasificación proporciona soluciones rápidas y fáciles a todos estos problemas. Es una aplicación rara cuya complejidad de tiempo es tal que la clasificación demuestra ser el cuello de botella, especialmente un cuello de botella que de otro modo podría haberse eliminado utilizando algoritmos más inteligentes.
- ¿Cuál es la última actualización del algoritmo SEO de Google en 2017?
- ¿Cuál es la diferencia entre un árbol AVL y un árbol de búsqueda binario?
- ¿Es la incapacidad de implementar estructuras de datos básicas como una lista doblemente enlazada, un árbol con punteros primarios usando un código seguro la mayor debilidad de Rust?
- ¿Puedo obtener una breve descripción general del documento 'Generación precisa de hologramas utilizando el método basado en capas y el algoritmo de transformación de Fourier iterativo'?
- ¿Cuál es el propósito de estudiar pequeñas mejoras (como usar dos hilos o evitar la basura) mientras puedo reducir la complejidad de los algoritmos?
Aplicaciones del mundo real de clasificación:
- Clasificación de fusión: las bases de datos utilizan una clasificación de fusión externa para ordenar conjuntos de datos que son demasiado grandes para cargarlos completamente en la memoria. El factor determinante en este tipo es la reducción en el número de E / S de disco.
- Clasificación de burbujas: La clasificación de burbujas se utiliza en la programación del control remoto de TV para clasificar canales en función de un tiempo de visualización más prolongado.
- Clasificación de pila: la clasificación de pila se utiliza para leer códigos de barras en tarjetas de plástico. El servicio permite comunicarse con la base de datos para realizar comprobaciones constantemente para asegurarse de que todos estén en línea y tengan que informar constantemente estadísticas sobre qué lectores tuvieron el peor desempeño, cuáles obtuvieron la mayor / menor actividad del usuario, etc.
- Clasificación rápida: los puntajes deportivos se organizan por clasificación rápida en función de la proporción de victorias y derrotas.
- Clasificación de radix: eBay le permite ordenar los listados por el monto actual de la oferta aprovechando la clasificación de radix.
- Selección de selección: el portal educativo K12 permite ordenar alfabéticamente la lista de alumnos mediante la selección de selección.
Espero que ya no te aburras estudiando los algoritmos de clasificación …
¡¡¡Disfruta aprendiendo!!!