C ++ qsort () - štandardná knižnica C ++

Funkcia qsort () v C ++ triedi dané pole vo vzostupnom poradí pomocou algoritmu Quicksort.

Funkcia qsort () pomocou porovnávacej funkcie rozhodne, ktorý prvok je menší alebo väčší ako ten druhý.

qsort () prototyp

 void qsort (void * base, size_t num, size_t size, int (* compare) (const void *, const void *));

Funkcia je definovaná v hlavičkovom súbore.

Funkcia qsort () triedi dané pole označené základňou vo vzostupnom poradí. Pole obsahuje numprvky, každý s veľkosťou bajtov.

Funkcia poukázaná na porovnanie sa používa na porovnanie dvoch prvkov poľa. Táto funkcia upravuje obsah samotného poľa vo vzostupnom poradí.

Ak sú si však dva alebo viac prvkov rovnaké, ich poradie je nedefinované.

Parametre qsort ()

  • base: Ukazovateľ na prvý prvok poľa, ktorý sa má zoradiť
  • num: Počet prvkov v poli
  • size: Veľkosť každého prvku v poli v bajtoch
  • porovnanie: Ukazovateľ na funkciu, ktorá porovnáva dva prvky. Vracia sa to
    • záporné celé číslo, ak je prvý argument menší ako druhý
    • kladné celé číslo, ak je prvý argument väčší ako druhý
    • nula, ak sú obidva argumenty rovnaké

Prototyp porovnávacej funkcie vyzerá takto:

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

qsort () Vrátiť hodnotu

Funkcia qsort () nič nevráti. Na zoradené pole ukazuje základňa.

Príklad: Ako funguje funkcia 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

Zaujímavé články...