Tengo una pregunta que podría parecer muy básica, pero es en un contexto donde "cada cuenta de CPU cuenta" (esto es parte de un algoritmo más grande que ser utilizado en supercomputadoras).C++: La forma más rápida de ordenar una lista de números y su índice
El problema es bastante simple: ¿cuál es la forma más rápida de ordenar una lista de números largos largos sin signo y sus índices originales? (. Al principio, los números largos entero largo sin signo están en un orden completamente al azar)
Example :
Before
Numbers: 32 91 11 72
Indexes: 0 1 2 3
After
Numbers: 11 32 72 91
Indexes: 2 0 3 1
Por "forma más rápida", quiero decir: ¿qué algoritmo de usar: std :: sort, C qsort, u otra algoritmo de clasificación disponible en la web? ¿Qué contenedor usar (C array, std :: vector, std :: map ...)? Cómo ordenar los índices al mismo tiempo (use structures, std :: pair, std :: map ...)?
¡Muchas gracias!
EDITAR: ¿cuántos elemento ordenar? -> típicamente 4Go de los números
¿Cuántos elementos ordenar (max)? –
No debería haber ninguna diferencia entre una matriz C y std :: vector, ni entre una estructura y std :: pair. –