C ++ qsort () - Standardna knjižnica C ++

Funkcija qsort () v jeziku C ++ razvrsti dano matriko v naraščajočem vrstnem redu z uporabo algoritma Quicksort.

Funkcija qsort () s primerjalno funkcijo določi, kateri element je manjši / večji od drugega.

prototip qsort ()

 void qsort (void * osnova, size_t num, size_t size, int (* primerjaj) (const void *, const void *));

Funkcija je definirana v glavi datoteke.

Funkcija qsort () razvrsti dano polje, ki ga kaže baza, v naraščajočem vrstnem redu. Matrika vsebuje numelemente, vsak z velikostjo bajtov.

Funkcija, na katero opozarja primerjava, se uporablja za primerjavo dveh elementov polja. Ta funkcija spreminja vsebino same matrike v naraščajočem vrstnem redu.

Če sta dva ali več elementov enaka, njihov vrstni red ni opredeljen.

Parametri qsort ()

  • osnova: Kazalec na prvi element polja, ki ga želite razvrstiti
  • num: Število elementov v matriki
  • velikost: Velikost v bajtih vsakega elementa v matriki
  • compare: Kazalec na funkcijo, ki primerja dva elementa. Vrne se
    • negativno celo število, če je prvi argument manjši od drugega
    • pozitivno celo število, če je prvi argument večji od drugega
    • nič, če sta oba argumenta enaka

Prototip funkcije primerjave je videti tako:

 int primerjaj (const void * a, const void * b);

qsort () Vrnjena vrednost

Funkcija qsort () ne vrne ničesar. Na razvrščeno polje opozarja osnova.

Primer: Kako deluje funkcija qsort ()?

 #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

Zanimive Članki...