Clasificación patológica
Su jefe le ha exigido que desarrolle un algoritmo de clasificación para mejorar el rendimiento de la aplicación de su empresa. Sin embargo, después de escribir la aplicación, sabe que es poco probable que pueda hacerla significativamente más rápida. No queriendo decepcionar a su jefe, ha decidido desarrollar un nuevo algoritmo que funciona incluso mejor que * ordenar en ciertos conjuntos de datos. Por supuesto, no puede hacer obvio que el algoritmo solo funciona en algunos casos, por lo que desea que sea lo más oscuro posible.
El objetivo de este concurso es escribir una rutina de clasificación en el idioma que elija que funcione mejor en ciertos conjuntos de datos que otros, con resultados repetibles. Cuanto más específica sea la clasificación que determina la velocidad, mejor. El algoritmo debe hacer algún tipo de clasificación, por lo que un algoritmo que depende de los datos que ya están completamente ordenados (como en un algoritmo que no hace nada), o un algoritmo que depende de los datos que se ordenan completamente a la inversa, ambos no son válidos. El algoritmo de ordenación debe ordenar correctamente cualquier conjunto de datos.
Después de presentar su rutina, incluya una explicación de por qué solo funciona en ciertos conjuntos de datos e incluya ejecuciones de prueba en al menos un conjunto de datos buenos (rápidos) y un conjunto de datos malos (lentos). El punto aquí es poder demostrarle a su jefe que ha encontrado una mejor manera de clasificar, por lo que más datos de prueba son mejores. Por supuesto, solo le mostrará a su jefe los resultados de la prueba de los datos correctos, por lo que la falla en los datos de prueba requeridos no puede ser demasiado obvia. Si corresponde a su idioma, demuestre que su algoritmo es más rápido que el algoritmo de clasificación incorporado en su idioma.
Por ejemplo, uno podría enviar un algoritmo de ordenamiento por inserción, siendo los datos buenos datos que ya están casi ordenados, y los datos malos son datos completamente aleatorios, ya que el ordenamiento por inserción se acerca a O (n) en datos casi ordenados. Sin embargo, esto no es muy bueno, ya que mi jefe probablemente notaría que todos los datos de prueba están casi ordenados para empezar.
Este es un concurso de popularidad , por lo que gana la respuesta con más votos después de 7 días (21 de mayo).
Si nadie me supera, me gustaría enviar una respuesta wiki comunitaria que aproveche los conjuntos de datos distribuidos uniformemente.