¿Necesito codificar estructuras de datos en Java para preguntas de entrevistas?

En cualquier entrevista su objetivo es ace la entrevista. Para hacer eso tienes que entrar en la mente del entrevistador.

Si su entrevistador espera que codifique estructuras de datos en Java, debe hacerlo. No hay escapatoria de eso.

Por mi experiencia personal conozco dos instancias. Un vicepresidente senior era muy aficionado a pedirles a los candidatos que implementaran Binary Search Tree (BST) en Java. Entonces la gente iría preparada con las operaciones BST en Java y serían seleccionados por él.

En otro caso, uno de mis amigos fue rechazado por un Director de una empresa de comercio electrónico por no poder implementar LinkedList. Más tarde descubrió que el Director ha escrito un artículo en LinkedList.

Estos dos ejemplos muestran que a menudo puedes encontrar entrevistadores con ego inflado. Si entiendes este hecho, entonces puedes fácilmente as la entrevista.

No hay ciencia espacial en la implementación de LinkedList o Binary Search Tree en Java. Especialmente cuando el trabajo de tus sueños está a tu alcance, debes hacer todo lo posible para conseguirlo.

Así que adelante, repase sus estructuras de datos y aprenda a implementarlas en Java.

Espero que ayude.

Sígueme en Gautam Gupta para obtener más consejos para la entrevista.

Hmmmm Creo que si estás tratando de conseguir un trabajo y tu elección es entre hacer entrevistas de práctica y leer páginas del manual, deberías elegir las entrevistas de práctica.

Las estructuras de datos y los algoritmos son importantes en el mundo laboral, pero solo en la capacidad que usted necesita para saber cómo buscarlos, compararlos y aplicar lo que encontró.

Llevo años usando Perl en trabajos estables y bien remunerados. Nadie me va a preguntar sobre estructuras de datos y algoritmos. De hecho, confío en la capacidad de Perl para tomar estas decisiones por mí. Solo está disponible un tipo de fusión. Solo está disponible un vector (con algo de espacio en la cabeza y la cola). Solo hay un mapa hash disponible. Eso es suficiente DSA para hacer cualquier cosa que no sea especialmente de alto rendimiento.

Solo fui contratado por mi título y por conocer a Perl. Como los programadores de Perl son raros en mi área, y probé que podía entrar y hacer la programación que querían, me contrataron. No hay preguntas sobre DSA en absoluto. Varias preguntas para pedirme que analice una cadena o escriba una consulta. Simplemente, conocía el material porque me contrataban para el trabajo correcto.

Sí, si Java es su idioma preferido. Algunas preguntas de la entrevista requieren implementar estructuras de datos o al menos saber cómo funcionan, como devolver si un árbol es un árbol de búsqueda binario o invertir una lista vinculada. Algunas preguntas de la entrevista requieren implementar un tipo o búsqueda binaria.

Los entrevistadores generalmente permiten que los solicitantes usen el lenguaje de su elección, por lo que puede sustituir C ++, C o Perl si lo prefiere.

Como programador competente que comienza con principios (no memorización), debería poder implementar

  1. Listas vinculadas, utilizadas para colas y pilas
  2. Árboles de búsqueda binaria
  3. Intentos
  4. Tablas hash
  5. Tampones circulares
  6. Montones binarios
  7. Búsqueda binaria
  8. Tipo de conteo
  9. Tipo de selección
  10. Tipo de montón
  11. Tipo de fusión externa

La lista enlazada y las preguntas de árbol binario son comunes en las entrevistas de ingeniería de software. También he usado try, tablas hash, buffers circulares, montones binarios, búsqueda binaria y ordenación de conteo. En más de 20 años, solo una persona me pidió que implementara un orden general, donde respondí con un orden de selección para el tiempo de implementación más rápido y noté qué haría con más.

Las implementaciones de listas enlazadas ad-hoc, árbol y trie son comunes en el software del sistema, incluso cuando está escrito en Java. Los programas C generalmente deben usar BSD para listas y para AVL / árboles rojo-negros, aunque las personas a menudo usan los suyos.

Si; Si no sabe cómo construir la estructura de datos / algoritmo (Lista / Ordenar / Buscar), realmente no sabe / puede no estar lo suficientemente familiarizado con el material en cuestión para usarlo de manera efectiva.

Pasar por ese proceso lo familiariza inicialmente con él, lo que a su vez le brinda la capacidad de utilizarlo de manera más efectiva.

No puedo responder sobre las preguntas de la entrevista, pero para ser un buen desarrollador de software necesita conocer varios algoritmos de clasificación y también cómo codificar las estructuras vinculadas:

  • Clasificación: no existe un mejor algoritmo de clasificación, por lo que ningún algoritmo de clasificación incorporado es bueno para todas las situaciones. Por ejemplo, si tiene 10 elementos para ordenar, la ordenación por inserción es probablemente más rápida que la ordenación por fusión, pero si tiene 10,000 elementos, la ordenación por fusión es probablemente más rápida.
  • Estructuras vinculadas: a menudo, los enlaces son parte de un objeto. En lugar de una lista vinculada de objetos Friend, puede tener una variable de instancia en cada objeto Friend que apunta al siguiente amigo de la lista. Puede argumentar que esta es la forma incorrecta de representar las cosas, pero es posible que deba trabajar en un código que lo haga de esta manera y no pueda cambiar la representación. Entonces debes saber cómo funcionan estas estructuras.

Sí, debe conocer la implementación interna de las estructuras de datos y también saber cuándo utilizar qué estructuras de datos …