C ++ qsort () - standardní knihovna C ++

Funkce qsort () v C ++ třídí dané pole ve vzestupném pořadí pomocí algoritmu Quicksort.

Funkce qsort () používá porovnávací funkci k rozhodnutí, který prvek je menší / větší než ten druhý.

qsort () prototyp

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

Funkce je definována v hlavičkovém souboru.

Funkce qsort () třídí dané pole označené základnou ve vzestupném pořadí. Pole obsahuje numprvky, každý o velikosti bajtů.

Funkce, kterou ukazuje porovnání, se používá k porovnání dvou prvků pole. Tato funkce upravuje obsah samotného pole ve vzestupném pořadí.

Pokud jsou však dva nebo více prvků stejné, jejich pořadí je nedefinované.

qsort () Parametry

  • base: Ukazatel na první prvek pole, který se má seřadit
  • num: Počet prvků v poli
  • size: Velikost v bajtech každého prvku v poli
  • porovnat: Ukazatel na funkci, která porovnává dva prvky. Vrací se
    • záporné celé číslo, pokud je první argument menší než druhý
    • kladné celé číslo, pokud je první argument větší než druhý
    • nula, pokud jsou oba argumenty stejné

Prototyp srovnávací funkce vypadá takto:

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

qsort () Vrátí hodnotu

Funkce qsort () nic nevrací. Na seřazené pole ukazuje základna.

Příklad: Jak funguje funkce 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

Zajímavé články...