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.