Sobes.tech
Junior

¿Qué algoritmo de ordenamiento se utiliza en la función sort?

sobes.tech AI

Respuesta de la IA

En la biblioteca estándar de C++, la función std::sort generalmente se implementa utilizando el algoritmo Introsort (Ordenamiento introspectivo). Es un algoritmo híbrido que combina:

  • Ordenamiento rápido (Quicksort) para la mayoría de los casos
  • Ordenamiento por montículo (Heapsort) en caso de que la profundidad de la recursión sea demasiado grande (para evitar el peor caso de Quicksort)
  • Ordenamiento por inserción (Insertion Sort) para subarreglos pequeños

Introsort garantiza un buen rendimiento promedio de Quicksort con la garantía del peor caso O(n log n) gracias a la conmutación a Heapsort.

Ejemplo de uso de std::sort:

#include <algorithm>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v = {5, 3, 2, 4, 1};
    std::sort(v.begin(), v.end());
    for (int n : v) {
        std::cout << n << ' ';
    }
    return 0;
}

Por lo tanto, std::sort es un algoritmo de alto rendimiento basado en Introsort.