Sobes.tech
Junior

Qual algoritmo di ordinamento viene utilizzato nella funzione sort?

sobes.tech AI

Risposta dell'AI

Nella libreria standard di C++, la funzione std::sort è generalmente implementata utilizzando l'algoritmo Introsort (Ordinamento introspectivo). È un algoritmo ibrido che combina:

  • Quicksort per la maggior parte dei casi
  • Heapsort quando la profondità di ricorsione diventa troppo grande (per evitare il caso peggiore di Quicksort)
  • Insertion Sort per sottoarray di piccole dimensioni

Introsort garantisce in media buone prestazioni di Quicksort con la garanzia del caso peggiore O(n log n) grazie al passaggio a Heapsort.

Esempio di utilizzo di 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;
}

Pertanto, std::sort è un algoritmo ad alte prestazioni basato su Introsort.