¿Cuáles son los algoritmos de clasificación más comunes en una entrevista tecnológica?

En mi experiencia, se está volviendo cada vez menos común necesitar saber cómo implementar cualquier algos de clasificación en el contexto de una entrevista, y si es necesario implementar uno dentro de una entrevista, solo conocer uno (la clasificación rápida es un buen valor predeterminado, con pocos casos extremos) generalmente son suficientes. Sin embargo, conocer sus tiempos de ejecución asintóticos y para qué sirve cada uno (¿es estable / inestable? ¿Bueno para conjuntos de datos muy grandes como mergesort, o mejor para el uso en memoria como quicksort?) Es bastante útil.

Sin embargo, lo más importante es tener una caja de herramientas sólida de la que pueda sacar para resolver una amplia variedad de problemas. La mayoría de las veces puede funcionar con un algoritmo de clasificación realmente sólido (la ordenación rápida tiene sentido, ya que es intuitivamente similar a la búsqueda binaria, que es algo que necesita saber), siempre que conozca los entresijos de otras estructuras de datos y algoritmos. Si sabe cómo usar un montón, no necesita memorizar el montón explícitamente: ya tiene una versión básica a su disposición (simplemente pegue todos sus valores en un montón y los extraiga hasta que el montón esté vacío). Si puede usar efectivamente un árbol de búsqueda binario, puede usarlo para ordenar y buscar cualquier conjunto de datos que se ajuste a la memoria. Y si necesita una semántica de clave / valor desordenada, HashMap es más eficiente que cualquier estructura ordenada. Concentrarse menos en dominar todos los tipos posibles y asegurarse de que su caja de herramientas esté completa lo ayudará en las entrevistas mucho más que ser un experto en clasificación.

En mi experiencia, de la mayoría a las menos mencionadas en las entrevistas:
1. clasificación rápida: impleméntelo, explíquelo
2. fusionar: implementarlo, hablar sobre la complejidad del espacio y la complejidad del tiempo
3. tipo de inserción: explique cuándo puede ser mejor que los dos anteriores
4. montón: explique cómo funciona y cómo funcionan los montones en general
5. tipo de burbuja: por qué es horrible
6. clasificación de radix / conteo / cubeta: cuando es útil
7. selección de selección: generalmente se incluye como ejemplo cuando se le pide que enumere algoritmos de clasificación que conoce

Casi todo lo demás son curiosidades.
También me gusta incluir el “Tim Sort” de Python en estas conversaciones.

Bueno, depende de su entrevistador, pero al menos debe saber Combinar clasificación, Clasificación rápida, Clasificación de montón y Clasificación de Radix.
Debe conocer sus complejidades, ventajas y ejemplos prácticos de sus usos.