Sobes.tech
Junior

Jaký třídicí algoritmus se používá ve funkci sort?

sobes.tech AI

Odpověď od AI

V knihovně standardu C++ je funkce std::sort obvykle implementována pomocí algoritmu Introsort (Introspektivní třídění). Je to hybridní algoritmus, který kombinuje:

  • Rychlé třídění (Quicksort) pro většinu případů
  • Heapsort, pokud se hloubka rekurze stává příliš velkou (aby se předešlo nejhoršímu případu Quicksortu)
  • Vkládací třídění (Insertion Sort) pro malé podpole

Introsort zajišťuje průměrně dobrou výkonnost rychlého třídění s garancí nejhoršího případu O(n log n), díky přepínání na Heapsort.

Příklad použití 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;
}

Proto je std::sort vysoce výkonný algoritmus založený na Introsortu.