Sobes.tech
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 qsort rýchle triedenie pomocou rekurzie a delenia poľa na podpole.
  • V jazyku C++ používa funkcia std::sort z <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.