Sobes.tech
Junior

Jaki algorytm sortowania jest używany w funkcji sort?

sobes.tech AI

Odpowiedź od AI

W standardowej bibliotece C++ funkcja std::sort jest zwykle implementowana z użyciem algorytmu Introsort (Sortowanie introspekcyjne). Jest to hybrydowy algorytm, który łączy:

  • Sortowanie szybkie (Quicksort) dla większości przypadków
  • Sortowanie kopcowe (Heapsort) w przypadku, gdy głębokość rekurencji staje się zbyt duża (aby uniknąć najgorszego przypadku sortowania szybkiego)
  • Sortowanie przez wstawianie (Insertion Sort) dla małych podtablic

Introsort zapewnia średnio dobrą wydajność sortowania szybkiego z gwarancją najgorszego przypadku O(n log n) dzięki przełączeniu na sortowanie kopcowe.

Przykład użycia 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;
}

Dlatego std::sort jest wysokowydajnym algorytmem opartym na Introsort.