Classificação Patológica
Seu chefe exigiu que você desenvolva um algoritmo de classificação para melhorar o desempenho do aplicativo da sua empresa. No entanto, depois de escrever o aplicativo, você sabe que é improvável que seja capaz de torná-lo significativamente mais rápido. Não querendo decepcionar seu chefe, você decidiu desenvolver um novo algoritmo que funciona ainda melhor do que * a classificação em determinados conjuntos de dados. Obviamente, você não pode deixar óbvio que o algoritmo funciona apenas em alguns casos; portanto, você deve torná-lo o mais obscuro possível.
O objetivo deste concurso é escrever uma rotina de classificação no idioma de sua escolha, com melhor desempenho em determinados conjuntos de dados do que em outros, com resultados repetíveis. Quanto mais específica a classificação que determina a velocidade, melhor. O algoritmo deve fazer uma classificação de algum tipo; portanto, um algoritmo que depende dos dados já estarem completamente classificados (como em um algoritmo que não faz nada) ou um algoritmo que depende dos dados serem classificados completamente ao contrário são ambos inválidos. O algoritmo de classificação deve classificar corretamente qualquer conjunto de dados.
Após apresentar sua rotina, inclua uma explicação do motivo pelo qual ela funciona apenas em determinados conjuntos de dados e inclua execuções de teste em pelo menos um conjunto de dados bons (rápidos) e um conjunto de dados ruins (lentos). O objetivo aqui é poder provar ao seu chefe que você encontrou uma maneira melhor de classificar, para que mais dados de teste sejam melhores. Obviamente, você só mostrará ao seu chefe os resultados dos testes dos bons dados, para que a falha nos dados de teste necessários não seja muito óbvia. Se aplicável ao seu idioma, mostre que seu algoritmo é mais rápido que o algoritmo de classificação interno do seu idioma.
Por exemplo, pode-se enviar um algoritmo de classificação por inserção, com dados bons sendo dados que já estão quase classificados e dados ruins sendo dados completamente aleatórios, uma vez que a classificação por inserção se aproxima de O (n) em dados quase classificados. No entanto, isso não é muito bom, pois meu chefe provavelmente notaria que todos os dados de teste estão quase ordenados para começar.
Este é um concurso de popularidade , por isso vence a resposta com mais votos após 7 dias (21 de maio).
Se ninguém me interessar, gostaria de enviar uma resposta wiki da comunidade que aproveite os conjuntos de dados distribuídos uniformemente.