Sobes.tech
Junior

Kura kārtošanas algoritma tiek izmantots funkcijā sort?

sobes.tech AI

Atbilde no AI

Standarta bibliotēkā C++ funkcija std::sort parasti tiek īstenota, izmantojot Introsort (Introspektīvā šķirošana) algoritmu. Tas ir hibrīds algoritms, kas apvieno:

  • Ātru šķirošanu (Quicksort) lielākajā daļā gadījumu
  • Heapsort (Kopu šķirošanu), ja rekursijas dziļums kļūst pārāk liels (lai izvairītos no sliktākā gadījuma Quicksort)
  • Ievietošanas šķirošanu (Insertion Sort) mazās apakšvirknēs

Introsort nodrošina vidēji labu Quicksort veiktspēju ar garantiju sliktākajā gadījumā O(n log n), pateicoties pārejai uz Heapsort.

Piemērs std::sort izmantošanai:

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

Tādēļ std::sort ir augstas veiktspējas algoritms, kas balstīts uz Introsort.