Si podemos ordenar datos usando SQL, ¿por qué necesitamos estudiar diferentes algoritmos de ordenación?

Hay varias razones por las que necesita estudiar diferentes algoritmos de clasificación:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Porque, si estás estudiando ciencias de la computación, deberías saber qué está sucediendo debajo.

Conocer los detalles internos es lo que diferencia a un ingeniero de software de un empleado de cuello blanco

Dos razones:

  • Todos sus datos no están necesariamente almacenados en una base de datos, pueden estar en un archivo, pueden ser datos generados sobre la marcha, etc.
  • Si desea construir cosas como motores de bases de datos SQL, necesitará conocer muchos algoritmos, incluida la ordenación. Es posible que nunca esté escribiendo un algoritmo de clasificación en su código, pero necesita saber cómo funcionan y cuál usar dónde.

¡No todos los datos se almacenan en la base de datos, algunos se almacenan en el sistema de archivos y otros directorios también!