¿Cuál sería su selección de 20 problemas en algoritmos de clasificación (6 problemas de nivel básico, 6 problemas de nivel medio y 8 difíciles) para que resolver esos 20 le daría la máxima comprensión sobre la clasificación?

Descargo de responsabilidad 1:

Eso sí, antes de comenzar a leer estos problemas … No los he clasificado como difíciles o fáciles … Los diferentes problemas son diferentes para diferentes personas.

Descargo de responsabilidad 2:
Además, identificar que necesitas ordenar, generalmente es la mitad de la batalla. La otra mitad es usar el resultado correctamente para llegar a su conclusión.

Por lo tanto, el hecho de que ya sepa que se trata de una especie de clasificación mata un poco la pregunta.

Descargo de responsabilidad 3: Esto es lo que puedo pensar en mi cabeza. Otros pueden tener opiniones diferentes sobre si son los mejores o no.

Aquí hay algunas preguntas típicas

1. Problema de la bandera nacional holandesa

2. Se le dan un montón de tareas, con sus horarios de inicio y finalización. Los intervalos de tiempo para estas tareas pueden superponerse. Cada tarea debe ejecutarse en un solo hilo. ¿Cuántas CPU necesitará para que cada tarea pueda comenzar y finalizar en el tiempo especificado?

3. ¿Cómo ordenaría 10 millones de enteros en un archivo? Cada número entero ocupa 4 bytes y su RAM es de 1 mb.

4. Combine k listas ordenadas, cada una con n números, en una sola lista. Suponga que puede guardar todo en la memoria

5. Encuentra el késimo número más pequeño en una matriz. O Encuentra los k números más pequeños en una matriz

6. Tienes n tuercas y n tornillos. Cada tuerca se ajusta a un solo perno. No se pueden comparar 2 nueces entre sí. No se pueden comparar 2 tornillos entre sí. Se le da una función de comparación que toma una tuerca, y un tornillo, devuelve 1,0, -1. Es mayor, igual o menor. Encuentra la tuerca para cada tornillo.

7 implementar cuenta de clasificación

8. Calcular la intersección de 2 matrices ordenadas

9. Encuentra todos los pares de elementos en una lista dada de números que se suman a una suma dada sin usar ningún espacio adicional.

10. Cuenta el número de inversiones en una matriz

11. Te dan 2 arreglos ordenados. Encuentra la mediana de las 2 matrices.

12. Se le proporciona un archivo que contiene todas las direcciones IP posibles, excepto 1. Busque la dirección IP que falta. Tienes carnero limitado. Digamos 4 mb de ram.

13. Tienes una matriz 2D de enteros. Cada fila y columna están ordenadas. Averigua si un número dado está presente.

Feliz resolviendo ..

Aquí hay una de las “Perlas de programación” de Bentley. Suponga que tiene una lista de números de teléfono de 7 dígitos (es decir, solo le preocupan los números en un área local determinada). ¿Cuál es la forma más rápida de determinar si tiene duplicados?

Respuesta: configure una matriz de elementos booleanos de tamaño 10 ^ 8 y configúrelos todos falsos. Revise su lista de números y si el elemento de la matriz indexado por su número de teléfono es falso, configúrelo verdadero. Si es verdad, tienes un duplicado.

Si desea hacerlo más sofisticado, integre la matriz y úsela para contar el número de ocurrencias de cada número.