Junior — Middle
Hogyan valósul meg az adatok rendezési eljárása az alapkönyvtárakban?
sobes.tech MI
Válasz az MI-től
A C és C++ szabványkönyvtárakban a rendezés általában a gyorsrendezés (QuickSort) algoritmus vagy változatai segítségével valósul meg.
- C-ben a
qsortszabványos függvény a gyorsrendezést valósítja meg rekurzióval és a tömb felosztásával alkönyvtárakra. - C++-ban az
<algorithm>-ból származóstd::sortáltalában egy hibrid algoritmust, az úgynevezett Introsort-ot használ; ez kombinálja a gyorsrendezést, a halmazrendezést (heap sort) és az beszúrásos rendezést, hogy optimális teljesítményt és stabilitást érjen el.
Példa a qsort használatára C-ben:
#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;
}
Ezért a rendezés a szabványkönyvtárakban hatékony algoritmusokon alapul, amelyek különböző esetekre vannak optimalizálva.