¿Alguien sabe tanto los tiempos de ejecución esperados como los peores tiempos de ejecución para las diferentes implementaciones de std::nth_element
? Yo uso este algoritmo casi todos los días.implementaciones nth_element Complejidades
Estoy especialmente interesado en las versiones de STL que se envían con los recientes compiladores de Microsoft, pero cualquier información sobre este tema es útil.
Please note that this is not a duplicate of this question. Entiendo qué algoritmos existen, pero estoy interesado en qué implementaciones usan qué algoritmos.
Para el fondo, existen algoritmos bien conocidos para hacer esto. Uno es el caso promedio de O (n) y el peor caso de O (n log n), uno es el peor caso de O (n) pero lento en la práctica (mediana de las medianas). También tenga en cuenta que there is talk of interesting implementation strategies to get worst-case O(n) running times that are fast in practice. El estándar dice que esto debe ser peor O (n) tiempo promedio.
La norma dice * Complejidad: lineal en promedio. * ¿Buscó el encabezado para la implementación? Eso puede ser un comienzo. – dirkgently
Buen punto, aclaro la pregunta en base a esto. –
Un [error] relacionado (https://connect.microsoft.com/VisualStudio/feedback/details/184518/incorrect-implementation-of-c-stl-nth-element-algorithm) donde puede obtener una idea acerca de las optimizaciones en VS. – dirkgently