Sobes.tech
Junior

Koks rūšiavimo algoritmas naudojamas funkcijoje sort?

sobes.tech AI

Atsakymas iš AI

Standartinėje C++ bibliotekos dalyje funkcija std::sort paprastai įgyvendinama naudojant Introsort (Introspektyvinį rūšiavimą) algoritmą. Tai hibridinis algoritmas, kuris jungia:

  • Greitą rūšiavimą (Quicksort) daugeliu atvejų
  • Heapsort (Kopų rūšiavimą), jei rekursijos gylis tampa per didelis (siekiant išvengti blogiausio Quicksort atvejo)
  • Įterpimo rūšiavimą (Insertion Sort) mažiems submasyvams

Introsort užtikrina vidutiniškai gerą Quicksort našumą ir garantuoja blogiausią atvejį O(n log n), dėl perėjimo prie Heapsort.

Pavyzdys, kaip naudoti 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;
}

Todėl std::sort yra aukšto našumo algoritmas, pagrįstas Introsort.