Este es el problema que tuve hace mucho tiempo. Pensé que podría pedirte tus ideas. supongo que tengo una lista muy pequeña de números (enteros), 4 u 8 elementos, que deben ordenarse, rápido. ¿cuál sería el mejor enfoque/algoritmo?Implementación rápida de algoritmos para ordenar una lista muy pequeña
mi enfoque era utilizar las funciones max/min (10 funciones para ordenar 4 números, sin ramificaciones, iirc).
// s(i,j) == max(i,j), min(i,j)
i,j = s(i,j)
k,l = s(k,l)
i,k = s(i,k) // i on top
j,l = s(j,l) // l on bottom
j,k = s(j,k)
Supongo que mi pregunta se refiere más a la implementación que al tipo de algoritmo.
En este punto, se vuelve algo dependiente del hardware, así que supongamos que el procesador Intel de 64 bits con SSE3.
Gracias
Me preguntaron básicamente la misma pregunta pero con un contexto más específico (aplicación C, las matrices de 6 enteros) y el ciclo utilizado cuentan registro para la evaluación del desempeño. Puede ver los resultados aquí: http://stackoverflow.com/questions/2786899/fastest-sort-of-fixed-length-6-int-array – kriss
related: [Tipo más rápido de longitud fija 6 int array] (http://stackoverflow.com/q/2786899/309483) –