Junior — Middle
Ako je implementovaná procedúra triedenia údajov v štandardných knižniciach?
sobes.tech AI
Odpoveď od AI
V štandardných knižniciach jazyka C a C++ je triedenie zvyčajne implementované pomocou algoritmu rýchleho triedenia (QuickSort) alebo jeho variácií.
- V jazyku C implementuje štandardná funkcia
qsortrýchle triedenie pomocou rekurzie a delenia poľa na podpole. - V jazyku C++ používa funkcia
std::sortz<algorithm>zvyčajne hybridný algoritmus nazývaný Introsort, ktorý kombinuje rýchle triedenie, triedenie pomocou haldy (heap sort) a triedenie vložením pre optimálny výkon a stabilitu.
Príklad použitia qsort v jazyku C:
#include <stdlib.h>
int compare(const void *a, const void *b) {
int int_a = *(int*)a;
int int_b = *(int*)b;
return (int_a > int_b) - (int_a < int_b);
}
int main() {
int arr[] = {5, 2, 9, 1};
size_t n = sizeof(arr)/sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
return 0;
}
Takže triedenie v štandardných knižniciach je založené na efektívnych algoritmoch s optimalizáciami pre rôzne prípady.