Asumiré que esto está pidiendo ordenarlos por nombre, ya que esa fue la clasificación que me pidieron cuando era un TA.
Que haría yo:
- dividir las pruebas en 26 cubos (uno para cada letra)
- Esto es fácilmente paralelizable: asigne a cada TA 1/16 de la pila (aproximadamente, no vale la pena ser exacto) y haga que creen sus propias pilas (se ejecuta en O (n / t), donde ‘t’ es el número de TA) , y luego combine cada conjunto de minipilas en pilas reales (O (t)).
- Ahora cada TA clasifica las letras por sí mismas. Estas mini pilas deberían promediar unos 15 exámenes, por lo que debería ser rápido (es decir, menos de 2 minutos).
- Editar: ahora puedes combinar trivialmente las pilas colocando la pila A en la parte inferior, la pila B en la parte superior, etc. Esto es O (1) y es muy rápido en la práctica.
Una ventaja de este enfoque es la flexibilidad: si algunos TA son más rápidos que otros (o toman pilas más pequeñas), pueden pasar a la siguiente letra para ordenarlos sin esperar a los otros TA.
- ¿Por qué Google todavía muestra el tiempo de búsqueda en la página de resultados?
- ¿Cuál es el algoritmo más utilizado para la agrupación de documentos de texto?
- ¿Por qué es Forth el lenguaje de programación para practicar la escritura de algoritmos?
- ¿Cuál es el libro perfecto sobre CPP y algoritmos?
- ¿Te gusta la categoría de algoritmos de 'programación dinámica'?
Tiene la ventaja adicional de ser fácil de explicar (“todos toman algunos exámenes y los clasifican por letra; ahora combine sus pilas con las otras pilas de TA; ahora tome una pila y comience a ordenar”)
Esto fue más o menos lo que usamos antes de graduarme. Cómo exactamente los TA calificaron sus mini-pilas fue más o menos de ellos.