Solo al ver tu problema, se me ocurrieron muchas maneras de resolverlo.
Aunque lo primero que haría es demostrar cuando se demora tu problema en general. Si es que aún tienes intenciones de encontrar una manera más eficiente.
Dada una matriz m y n dimensiones y l el largo del vector donde l = m*n.
En total, tu algoritmo tiene un costo de... 2 * O(m*n) + O((m*n)^2) osea O((m*n)^2)
Por lo que podemos apreciar lo más costoso, es ordenar el arreglo. Podrías usar Quicksort para hacerlo más eficiente.
Bueno con esto podrías empezar a buscar métodos más eficientes para tu algoritmo.
Saludos!
Aunque lo primero que haría es demostrar cuando se demora tu problema en general. Si es que aún tienes intenciones de encontrar una manera más eficiente.
Dada una matriz m y n dimensiones y l el largo del vector donde l = m*n.
- Pasar matriz a vector tiene un costo de O(m*n)
- Ordenar vector tiene un costo O(l^2) (me da la impresión que usas burbuja, por el ciclo for anidado)
- Pasar el vector a matriz tiene un costo de O(m*n)
En total, tu algoritmo tiene un costo de... 2 * O(m*n) + O((m*n)^2) osea O((m*n)^2)
Por lo que podemos apreciar lo más costoso, es ordenar el arreglo. Podrías usar Quicksort para hacerlo más eficiente.
Bueno con esto podrías empezar a buscar métodos más eficientes para tu algoritmo.
Saludos!