Funktsioon qsort () C ++ -sorteerib antud massiivi kasvavas järjekorras, kasutades Quicksorti algoritmi.
Funktsioon qsort () kasutab võrdlusfunktsiooni, et otsustada, milline element on teine / väiksem.
qsort () prototüüp
void qsort (void * base, size_t number, size_t size, int (* võrdle) (const void *, const void *));
Funktsioon on määratletud päisefailis.
Funktsioon qsort () sorteerib antud massiivi aluse järgi osutatuna kasvavas järjekorras. Massiiv sisaldab num
elemente, millest igaüks on suurusbaiti.
Funktsiooni, millele osutab võrdlus, kasutatakse massiivi kahe elemendi võrdlemiseks. See funktsioon muudab massiivi enda sisu kasvavas järjekorras.
Kui aga kaks või enam elementi on võrdsed, pole nende järjestus määratletud.
qsort () parameetrid
- alus: osuti massiivi esimese elemendi sortimiseks
- num: massiivi elemendi arv
- size: massiivi iga elemendi suurus baitides
- Võrdle: kursor funktsiooniga, mis võrdleb kahte elementi. See naaseb
- negatiivne täisarv, kui esimene argument on väiksem kui teine
- positiivne täisarv, kui esimene argument on suurem kui teine
- null, kui mõlemad argumendid on võrdsed
Võrdlusfunktsiooni prototüüp näeb välja selline:
int võrdlus (const void * a, const void * b);
qsort () Tagastusväärtus
Funktsioon qsort () ei tagasta midagi. Sorteeritud massiivi osutab baas.
Näide: Kuidas funktsioon qsort () töötab?
#include #include using namespace std; int compare(const void* a, const void* b) ( const int* x = (int*) a; const int* y = (int*) b; if (*x> *y) return 1; else if (*x < *y) return -1; return 0; ) int main() ( const int num = 10; int arr(num) = (9,4,19,2,7,9,5,15,23,3); cout << "Before sorting" << endl; for (int i=0; i
When you run the program, the output will be:
Before sorting 9 4 19 2 7 9 5 15 23 3 After sorting 2 3 4 5 7 9 9 15 19 23