Sobes.tech
Junior

Milline sorteerimisalgoritm kasutatakse funktsioonis sort?

sobes.tech AI

Vastus AI-lt

C++ standardraamatukogus on std::sort funktsioon tavaliselt implementeeritud kasutades Introsort (Introspektiivne sorteerimine) algoritmi. See on hübriidne algoritm, mis ühendab:

  • Kiire sorteerimine (Quicksort) enamikul juhtudel
  • Heapsort (Kuhjasort), kui rekursiooni sügavus muutub liiga suureks (et vältida Quicksort'i halvimat juhtumit)
  • Sisestussort (Insertion Sort) väikestele alamrühmadele

Introsort tagab keskmiselt hea Quicksort'i jõudluse ja garanteerib halvimat juhtumit O(n log n), tänu üleminemisele Heapsort'ile.

Näide std::sort kasutamisest:

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

Seega on std::sort kõrge jõudlusega algoritm, mis põhineb Introsortil.