Hay varias razones por las que necesita estudiar diferentes algoritmos de clasificación:
- Los datos, que desea ordenar, no siempre estarán en la base de datos (SQL en su caso). Si toma algunos datos del usuario como entrada pero desea realizar la clasificación antes de realizar cualquier operación, entonces debe tener la clasificación en su código.
- A veces, su lógica de clasificación puede ser muy difícil (combinación de múltiples campos y operación). Sus datos pueden abarcar varias tablas. En problemas del mundo real, la clasificación que necesitará no será muy sencilla solo en orden ascendente o descendente. En algún momento puede que tenga que realizar alguna acción antes de ordenar. Su lógica de clasificación puede necesitar múltiples campos y múltiples operaciones antes de ordenar. Tomemos un ejemplo. Tiene 2 columnas en la tabla A (col1, col2) y 1 columnas en la tabla B (col3). Por alguna razón, necesita un orden de clasificación basado en (col1 * Col2 + col3). (Como un problema matemático para la ecuación de línea mx + c). Ahora esto no se puede realizar usando el orden en SQL fácilmente. Ahí es donde tendrá que ordenar el código.
- En algunos casos, la clasificación será más rápida si se realiza en código basado en su conjunto de datos. Es posible que necesite diferentes algoritmos de clasificación para el rendimiento en función de su conjunto de datos. Todo depende de tus datos.
- La última y más importante razón es que no le están enseñando la clasificación de burbujas u otros algoritmos de clasificación solo para fines de clasificación. Necesita estudiar esas cosas para mejorar el diseño de su algoritmo y aprender diferentes enfoques y patrones que realmente necesitará en el mundo de TI. Nunca escribirá clasificación de burbujas o clasificación de montón en ninguna empresa tal como está. Solo necesitas conocer las lógicas. Todos los lenguajes de programación tienen funciones de clasificación ya implementadas que solo necesita llamar para fines de clasificación. Esos serán más rápidos y bien probados.
Por lo tanto, debe conocer todos los enfoques diferentes y las posibles soluciones para resolver un problema. Una solución no puede ser la mejor en todos los casos. Depende de los datos y el contexto, necesitará diferentes enfoques. Por lo tanto, debe explorar todas las soluciones posibles y utilizarlas según sus necesidades.
- ¿Es el algoritmo de búsqueda de Google realmente el mejor?
- ¿Cuáles son los algoritmos que se pueden usar en aplicaciones web del mundo real además de ordenar o buscar?
- ¿Cuáles son algunos ejemplos de problemas para los cuales una cola prioritaria resulta útil?
- ¿Por qué alguien usa el hashing cuando el peor tiempo de búsqueda del hashing es O (n) y eso para bbst es logn?
- ¿Cómo podemos calcular el factorial de los primeros N números naturales usando la metaprogramación de plantilla en C ++?