Cómo mejorar mis algoritmos de clasificación

¿Es esa pitón? Elimine todos los parámetros que no son realmente parámetros primero, como “Base” o “índice”. (Sugerencia: si su función siempre se llamará con el mismo valor para alguna variable, entonces esa variable no es realmente un parámetro. Conviértalo en una variable local).

Ahora piense si su función es realmente correcta. Tal vez hay alguna propiedad que siempre se mantiene en puntos cruciales, como “la lista ‘newList’ siempre está ordenada y contiene los primeros elementos de mi lista original”. Luego, cuando regrese, la longitud de newList es la misma que la longitud de oldList y, por lo tanto, es una lista ordenada que contiene los mismos elementos que la lista anterior. O tal vez su código no es correcto, y solo funciona para el único ejemplo en el que ha intentado. ¡Es bueno saber (o al menos tener una fuerte intuición) cuál de los dos es!

Ahora piense en cuántos pasos se necesitarían para ordenar una lista. Es fácil descubrir la lista que tiene, pero sería interesante encontrar una fórmula genérica. ¿De qué dependería? Una vez que tenga la fórmula, puede preguntarse si su algoritmo será adecuado para entradas realmente grandes.

Entonces te preguntarás si hay mejores algoritmos que los tuyos. Bueno, hay (y bastantes famosos). ¿Quizás elegir un valor y colocarlo en su posición correcta no es la mejor idea? ¿Tal vez pueda dividir el problema en subproblemas de igual tamaño, que pueden combinarse en una solución completa muy rápidamente? Tal vez hay un enfoque completamente diferente?

Después de encontrar una manera de mejorar el algoritmo de esa manera, descubre que su programa aún no se ejecuta rápidamente. Ahora es el momento de abrir un generador de perfiles. Con eso, puede darse cuenta de que su programa pasa mucho tiempo al iterar sobre su lista, o al insertar y agregar objetos en su nueva lista. ¿Quizás la lista estándar de Python no es la manera perfecta de hacer las cosas? ¿Quizás no debería iterar sobre la lista con índices, sino a través de la iteración de la lista incorporada? ¡Preguntas sobre preguntas!

Bueno, para un proyecto necesitaba escribir un Algoritmo de clasificación, al principio salí con un tipo de burbuja (sin saberlo). Luego empiezo a mejorarlo con modificaciones y piezas cambiantes.

Mi consejo es que comience a pensar en un Algoritmo simple, luego vea qué optimizaciones puede aportar.

Buena suerte y espero que este comentario te haya ayudado 😉

Mi primer consejo sería tratar de aprender la mayor cantidad de algoritmos de clasificación que pueda, y luego, si por alguna razón desea pensar en uno nuevo … podrá hacerlo.

Solo piense en eso: “pasa muchos meses pensando en una nueva forma de ordenar una matriz y cuando cree que terminó y se la presenta a alguien … desafortunadamente, descubre que este tipo de algoritmo tiene una versión anterior más eficiente … pierde tu tiempo al final “.

Te presentaste como un “principiante” … el primer trabajo de alguien en esa posición es aprender primero. Puede ser un poco molesto al principio, pero descubrirás que también puede ser genial.

Cuando aprenda por primera vez tecnologías y algoritmos reales, estará mucho más preparado para enfrentar desafíos.

Espero que te sea útil, gracias por tu pregunta