Pués para estar en un concurso (se supone que) se necesitan ciertos conocimientos y claridad de ideas... sin embargo, a duras penas eres capaz de explicarte, así que no se yo si saldrás bien parado...
...al hablar de algoritmos y sin más detalles específicos, asumo que te refieres a algoritmos de ordenamiento, wikipedia para eso te viene muy bien... debajo busco luego un enlace a todos ellos...
- El de
burbuja descártalo, salvo que que estés muy limitado de tiempo o tengas que ordenar pocos ítems (a lo sumo algunos centenares),
gNome también encaja ahí.
- Entre esa cantidad y pocos cientos,
selección e
inserción son más eficaces, y todavía son relativamente fácil implementarlos de cabeza en poco tiempo (sin cometer errores), pero en ese caso,
- Cuando te aproximas al medio millar,
quicksort destaca sobre el resto y se hace más notable cuanto más órdenes de cifras haya.
Combo sort, es entre la mitad y 1/4 de rápido con respecto a quicksort...
- Si son pocos miles, y los límites (el mayor y el menor) no distan varios órdenes de cifras, ordenas números y son todos enteros, el algoritmo
counting sort es el más rápido, pero consume de memoria un array adicional, de tamaño 'menor hasta el mayor'. Es el más rápido de todos, pero solo puede usarse en situaciones limitadas.
Naturalmente, son todo aproximaciones, depende de la implementación, del lenguaje con que se programe y del hardware...
https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento