Cómo dominar las estructuras de datos y los algoritmos (DSA) para mejorar mis habilidades de resolución de problemas que eventualmente serán útiles en las entrevistas

Puedo dar algunos consejos que me funcionaron. Espero que esto le ayude también.

  1. Intente observar qué almacenamiento de datos lo ayuda a dónde. Si está operando con poca memoria, ¿usaría un tipo de fusión?
  2. Elija escenarios para los que pueda aplicar los algoritmos particulares. ¿Puedes hacer un BFS para encontrar el valor más pequeño en un B-Tree?
  3. Medida del tiempo que tarda tu algo.
  4. Medición de la memoria consumida por su DSA.
  5. Observe escenarios en los que no puede aplicar algunos DSA. Antipatrones .
  6. Familiarícese con las bibliotecas de su idioma favorito. Algunos lenguajes como Java tienen funciones integradas para realizar búsquedas binarias u ordenar rápidamente. También le permiten personalizar su búsqueda / clasificación según su conjunto de datos.

3 y 4 lo ayudan mucho mientras aborda un escenario de entrada de múltiples subprocesos / gran escala. Puede pensar claramente sobre ” dividir y conquistar ” sus datos o refinar su procesamiento. Principalmente optimizando !

Prefiero hacer pseudocódigo antes de escribir el código. Sin embargo, nunca estoy convencido hasta que lo pongo en el editor y veo el primer corte trabajando con el mínimo conjunto de datos posible. Eso me lleva a este tema ” probar sus DSA “. Debe realizar comprobaciones básicas de pruebas de unidad funcional en cada paso para convencerse de que sus instrucciones están en línea con sus conceptos, especialmente si no está convencido de la documentación / API de la biblioteca con la que está trabajando. Necesitamos recordar que las computadoras no hacen matemáticas como nosotros.

Sin embargo, he visto personas que experimentan con DSA en sus editores de código. Funciona bien para algunos escenarios, especialmente durante la depuración y la resolución de problemas . También requiere un buen nivel de familiaridad con el lenguaje y los patrones de codificación.

Además, hacer que el código sea modular y legible ayuda mucho a usted y a otros programadores a trabajar con eficacia. Entonces, conocer formas de documentar / comentar / compartir / revisar también lo ayuda a mejorar lo que hace. Creo que la mayoría de las veces no eres el único que trabaja con el código que escribes.