Funkcija qsort () C ++ sakārto doto masīvu augošā secībā, izmantojot Quicksort algoritmu.
Funkcija qsort () izmanto salīdzināšanas funkciju, lai izlemtu, kurš elements ir mazāks / lielāks par otru.
qsort () prototips
void qsort (void * base, size_t num, size_t size, int (* salīdzināt) (const void *, const void *));
Funkcija ir definēta galvenes failā.
Funkcija qsort () sakārto doto masīvu ar bāzi norādot augošā secībā. Masīvā ir num
elementi, katrs no tiem ir lieluma baiti.
Funkcija, uz kuru norāda salīdzināt, tiek izmantota, lai salīdzinātu divus masīva elementus. Šī funkcija maina paša masīva saturu augošā secībā.
Tomēr, ja divi vai vairāki elementi ir vienādi, to secība nav noteikta.
qsort () parametri
- bāze: rādītājs uz kārtojamo masīva pirmo elementu
- num: masīva elementa numurs
- lielums: katra masīva elementa lielums baitos
- salīdzināt: rādītājs funkcijai, kas salīdzina divus elementus. Tas atgriežas
- negatīvs vesels skaitlis, ja pirmais arguments ir mazāks par otro
- pozitīvs vesels skaitlis, ja pirmais arguments ir lielāks par otro
- nulle, ja abi argumenti ir vienādi
Salīdzināšanas funkcijas prototips izskatās šādi:
int salīdzināt (const void * a, const void * b);
qsort () Atgriežamā vērtība
Funkcija qsort () neko neatgriež. Šķiroto masīvu norāda uz bāzi.
Piemērs: Kā darbojas qsort () funkcija?
#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