¿Es mejor aprender estructuras de datos y algoritmos en C ++ o Java?

Al aprender estructuras de datos y algoritmos, el lenguaje ocupa un lugar secundario, ya que es más importante comprender los conceptos en lugar de pensar en la sintaxis.

(Fuente de la imagen: Google)

Si comprende un algoritmo y sabe cómo implementarlo de manera eficiente, el lenguaje (Java / C ++) simplemente le dirá cómo usar la sintaxis para resolver el problema en cuestión.

Si observa el Libro de Introducción a los Algoritmos de Charles E. Leiserson, Clifford Stein, Ronald Rivest y Thomas H. Cormen, verá que los algoritmos se explican utilizando pseudocódigo y no un lenguaje específico. Entonces, en mi opinión, debe elegir el idioma que le resulte cómodo y que cree que utilizará para codificar durante mucho tiempo, probablemente profesionalmente. También me gustaría mencionar que si decide comenzar a codificar en C ++ ahora y desea cambiar a Java más adelante, entonces no será difícil.

¡Así que deja de preocuparte por el idioma, decide uno y sumérgete en el mundo de los algoritmos! 🙂

Los conceptos de estructura de datos y algoritmos son todo lo que necesita aprender. No dependen de ningún lenguaje de programación.

En lo que respecta a la implementación, puede implementarlos en cualquier lenguaje de programación, pero no utilice bibliotecas de estructuras de datos integradas, es decir, el marco de recopilación en java o bibliotecas de plantillas estándar en c ++.

practica más, más practicas más aprendes.

do

Es bueno si desea aprender detalles realmente de bajo nivel, como cómo se administra la memoria, pero la administración de la memoria es de repente una consideración importante, como en el uso correcto de malloc () / free (). Eso puede ser una distracción. Además, C no está orientado a objetos.

C ++

Creo que esta es una elección terrible . C ++ es horriblemente complicado incluso en un uso simple y tiene una cantidad ridícula de “trampas”. Además, C ++ no tiene una clase base común. Esto es importante porque las estructuras de datos como las tablas hash dependen de que haya una clase base común. Podría implementar una versión para un nominal
clase base pero es un poco menos útil.

Java

A muchas personas les gusta odiar Java y es cierto que el lenguaje es extremadamente detallado y carece de algunas de las características más modernas del lenguaje (por ejemplo, cierres), pero nada de eso realmente importa. Java está estáticamente tipado y tiene recolección de basura. Esto significa que el compilador de Java detectará muchos errores que los lenguajes tipados dinámicamente no detectarán (hasta el tiempo de ejecución) y no hay que lidiar con fallas de segmentación (lo que no quiere decir que no pueda perder memoria en Java; obviamente, sí puede).

do

Es bueno si desea aprender detalles realmente de bajo nivel, como cómo se administra la memoria, pero la administración de la memoria de repente es una consideración importante, como en el uso correcto de malloc () / free (). Eso puede ser una distracción. Además, C no está orientado a objetos.

C ++

Creo que esta es una elección terrible . C ++ es horriblemente complicado incluso en un uso simple y tiene una cantidad ridícula de “trampas”. Además, C ++ no tiene una clase base común. Esto es importante porque las estructuras de datos como las tablas hash dependen de que haya una clase base común. Podría implementar una versión para un nominal
clase base pero es un poco menos útil.

Java

A muchas personas les gusta odiar Java y es cierto que el lenguaje es extremadamente detallado y carece de algunas de las características más modernas del lenguaje (por ejemplo, cierres), pero nada de eso realmente importa. Java está estáticamente tipado y tiene recolección de basura. Esto significa que el compilador de Java detectará muchos errores que los lenguajes tipados dinámicamente no detectarán (hasta el tiempo de ejecución) y no hay que lidiar con fallas de segmentación (lo que no quiere decir que no pueda perder memoria en Java; obviamente, sí puede).

Aprenda estructuras de datos y algoritmos en C. tanto C ++ como Java proporcionan abstracción y soluciones de biblioteca listas para usar que ocultan los detalles de implementación y hacen que las cosas funcionen como magia, lo que podría obstaculizar seriamente sus capacidades como programador si comienza a aprender programación en Java y similares. nivel, lenguajes monitoreados por VM.

No es necesario que pueda implementar las estructuras de datos y los algoritmos en todos los idiomas. Las estructuras de datos y los algoritmos son conceptos teóricos que luego se implementarán en el lenguaje requerido.

Los lenguajes de programación son solo herramientas. Los necesitará mientras construye algo. En la estructura de datos es algo por lo que podemos estructurar nuestro código de tal manera que nuestro programa se ejecute de manera eficiente.

Cuando estábamos aprendiendo estructuras de datos y algoritmos en nuestra universidad, nos enseñaron en lenguaje C. Y luego intenté implementarlos en C ++ y Java. Entonces, según yo, solo trate de aprender el concepto e intente implementarlo en el idioma que desee. Una vez que obtenga los conceptos, puede implementarlos en cualquier idioma, aunque eso puede llevar algún tiempo.

Bueno, para comenzar, comenzaría con el idioma que conozco mejor o más cómodo.

Si conoce ambos idiomas, sin duda C ++ es una mejor opción. Pocas implementaciones no son posibles (AFAIK) en Java, por ejemplo, lista vinculada XOR. No es necesario decir que los punteros juegan un papel importante al codificar DS en C ++, por lo que es una GRAN bonificación aprender eso de manera eficiente.

Feliz aprendizaje !!

Las estructuras de datos y los algoritmos en C ++ son muy fáciles y pueden aprender fácilmente. C ++ define sus características en Oops, no hay algoritmos en c ++. Este es el lenguaje de programación y c ++ no tiene clase conman, tiene tres tipos de clase privada, protección pública.

JAVA Principalmente el lenguaje Java es muy difícil. Java tiene una recolección de basura, es muy difícil de aprender y el script Java es muy alto y su programa es mucho más largo que C ++ y Java no usa características modernas.

Los algoritmos no son específicos del lenguaje, ya que son conceptos. Puede elegir cualquiera de los idiomas para probar y probar. Si desea ayuda de bibliotecas previamente escritas, debe optar por Java, ya que está enriquecido con contribuciones de la comunidad. Pero, si desea aprender un algoritmo desde cero y desea conocer todos y cada uno de los pasos, mejor vaya a C ++

Definitivamente Java o C ++.

El aprendizaje de estructuras de datos no requiere que conozca la implementación de bajo nivel de esa estructura de datos. La forma más rápida y eficiente de comprender la estructura de datos sería a través del uso de Java o C ++, ya que omiten detalles que no son necesarios para comprender la estructura (lo que de otro modo lo obstaculizaría).

Es mejor aprender esto en c ++ porque el concepto sigue siendo el mismo en ambos lenguajes. Una vez que aprenda a implementar la lógica en c ++, es fácil de implementar en java pero no al revés. Es porque java no admite el uso de punteros. No podrá aprender sobre punteros, listas enlazadas, árboles y muchos otros en Java.

puede aprender la estructura de datos y el algoritmo en ambos idiomas,

pero si es un principiante, debe intentar aprender en c / c ++, aprender en c mejorará sus habilidades básicas, ya que c no proporciona muchas funciones incorporadas.

una vez que aprenda que en c, puede codificar en cualquier idioma dentro de un día / pocos días.

pero hoy en la industria no se usa c / c ++.

así que aconsejaré aprender estructuras de datos y algoritmos en c. & obtener conocimientos básicos de sintaxis de Java o cualquier otro lenguaje de alto nivel

Está en ti Debes elegir un idioma que sea fácil para ti.

Mi consejo prefiere Java porque tiene las siguientes ventajas

  1. Se producen menos errores en tiempo de ejecución y las razones son más fáciles de entender. En c ++ puedes jugar con fallas de segmentación durante muchas horas.
  2. Enorme biblioteca está disponible
  3. Las empresas prefieren Java en lugar de C ++.

Según yo, las estructuras de datos y el algoritmo son irrelevantes para el lenguaje de programación. El concepto es lo principal. Y es mejor aprenderlo en el lenguaje de programación con el que se sienta más cómodo. Lo aprendí c y no me resulta difícil implementarlo en java o c ++. La única diferencia está en la sintaxis.

Una vez que aprenda los conceptos, su aplicación es fácil ya sea Java o C ++. El lenguaje que ya se siente cómodo para codificar, primero intente aprender a aplicar estructuras de datos en ese lenguaje.

Apenas hace alguna diferencia. Depende de qué campo quieres trabajar en el futuro. Si desea la opción en Java o al revés. Pero si desea aprender los dos idiomas mejor para usar C ++, ya que la mayoría de los códigos son más cortos y es mejor comenzar a aprender de él.

Todos los bes !! y feliz aprendizaje \ U0001f60a

C ++ es mejor ya que trabajar con punteros y std realmente te ayuda mucho. En Java, puede verse atrapado en muchas complejidades relacionadas con Java

More Interesting

¿Qué es el WordNet? ¿Cuál es la relación entre WordNet y el algoritmo Leacock & Chodorow?

¿Cuál es la explicación intuitiva para agregar flujo en bordes inversos en el algoritmo de flujo máximo? ¿Por qué necesitamos eso?

¿Qué tan difícil es implementar un sitio web de reserva de boletos con un volumen máximo de 1 millón de boletos por hora durante ciertas horas del día?

Cómo encontrar el valor mínimo en una lista vinculada (individual / doblemente) en la menor cantidad de tiempo

¿Cómo visualizo el laberinto que estoy creando?

¿Cuáles son los algoritmos de vanguardia para las características de textura eficientes para la recuperación de imágenes?

Cómo aprender qué algoritmo usar en un conjunto de problemas en particular

¿Desglosar el problema en piezas más pequeñas siempre ofrece una mejor solución?

¿Cuál es la técnica para crear una solución DP iterativa a partir de su solución recursiva?

¿Los investigadores que elaboran algoritmos útiles ganan mucho dinero cuando sus algoritmos se aplican ampliamente en la industria?

¿Qué representación gráfica es mejor para la programación competitiva en C ++: lista de adyacencia o matriz de adyacencia?

¿Qué harías? ¿Cuál hubiera sido tu estrategia si hubieras tenido la oportunidad de volver a comenzar la programación de aprendizaje?

¿Cuál es la forma más rápida de encontrar el número original antes del descuento a mano? (números grandes)

¿Qué son los algoritmos simples?

¿Se puede utilizar el algoritmo de red neuronal artificial en un conjunto de datos dinámicos como el clima o el tráfico?