C ++ qsort () - Libreria standard C ++

La funzione qsort () in C ++ ordina un dato array in ordine crescente utilizzando l'algoritmo Quicksort.

La funzione qsort () utilizza una funzione di confronto per decidere quale elemento è più piccolo / maggiore dell'altro.

prototipo qsort ()

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

La funzione è definita nel file di intestazione.

La funzione qsort () ordina l'array dato puntato per base in ordine crescente. La matrice contiene numelementi, ciascuno di dimensioni byte.

La funzione puntata da compare viene utilizzata per confrontare due elementi dell'array. Questa funzione modifica il contenuto dell'array stesso in ordine crescente.

Tuttavia, se due o più elementi sono uguali, il loro ordine non è definito.

Parametri qsort ()

  • base: puntatore al primo elemento dell'array da ordinare
  • num: numero di elementi nell'array
  • size: dimensione in byte di ogni elemento dell'array
  • compare: un puntatore a una funzione che confronta due elementi. Ritorna
    • un numero intero negativo se il primo argomento è minore del secondo
    • un numero intero positivo se il primo argomento è maggiore del secondo
    • zero se entrambi gli argomenti sono uguali

Il prototipo della funzione di confronto è simile a:

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

qsort () Restituisce il valore

La funzione qsort () non restituisce nulla. L'array ordinato è puntato in base alla base.

Esempio: come funziona la funzione 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

Articoli interessanti...