C ++ qsort () - C ++ standardowa biblioteka

Funkcja qsort () w C ++ sortuje daną tablicę w porządku rosnącym za pomocą algorytmu Quicksort.

Funkcja qsort () używa funkcji porównawczej, aby zdecydować, który element jest mniejszy / większy od drugiego.

qsort () prototyp

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

Funkcja jest zdefiniowana w pliku nagłówkowym.

Funkcja qsort () sortuje podaną tablicę wskazywaną przez podstawę w porządku rosnącym. Tablica zawiera numelementy, każdy o rozmiarze bajtów.

Funkcja wskazywana przez porównanie służy do porównywania dwóch elementów tablicy. Ta funkcja modyfikuje zawartość samej tablicy w porządku rosnącym.

Jeśli jednak dwa lub więcej elementów jest równych, ich kolejność jest niezdefiniowana.

qsort () Parametry

  • base: wskaźnik do pierwszego elementu tablicy do sortowania
  • num: numer elementu w tablicy
  • size: rozmiar w bajtach każdego elementu w tablicy
  • porównaj: wskaźnik do funkcji, która porównuje dwa elementy. Wraca
    • ujemna liczba całkowita, jeśli pierwszy argument jest mniejszy niż drugi
    • dodatnią liczbą całkowitą, jeśli pierwszy argument jest większy niż drugi
    • zero, jeśli oba argumenty są równe

Prototyp funkcji porównania wygląda następująco:

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

qsort () Zwraca wartość

Funkcja qsort () nic nie zwraca. Posortowana tablica jest wskazywana przez podstawę.

Przykład: Jak działa funkcja 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

Interesujące artykuły...