Sobes.tech
Junior

Milyen rendezési algoritmust használ a sort függvény?

sobes.tech MI

Válasz az MI-től

A C++ szabványos könyvtárában a std::sort függvény általában az Introsort (Introspektív Rendezés) algoritmust használja. Ez egy hibrid algoritmus, amely ötvözi:

  • Gyorsrendezést (Quicksort) a legtöbb esetben
  • Heap-rendezést (Heapsort), ha a rekurzió mélysége túl nagy lesz (hogy elkerüljük a gyorsrendezés legrosszabb esetét)
  • Beszúrásos rendezést (Insertion Sort) kis részhalmazok esetén

Az Introsort átlagosan jó teljesítményt nyújt a gyorsrendezésnél, és a legrosszabb esetben garantálja az O(n log n) időt, köszönhetően a heap-re váltásnak.

A std::sort használatának példája:

#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;
}

Ezért a std::sort egy magas teljesítményű, Introsort-alapú algoritmus.