C ++ qsort () - C ++ standartinė biblioteka

Qsort () funkcija C ++ rūšiuoja nurodytą masyvą didėjimo tvarka, naudodama „Quicksort“ algoritmą.

Funkcija qsort () naudoja palyginimo funkciją, kad nuspręstų, kuris elementas yra mažesnis / didesnis už kitą.

qsort () prototipas

 void qsort (negaliojantis * pagrindas, dydis_t skaičius, dydis_t dydis, int (* palyginti) (const negaliojantis *, const negaliojantis *));

Funkcija apibrėžta antraštės faile.

Funkcija qsort () surūšiuoja nurodytą masyvą, nurodytą bazės pagrindu, didėjimo tvarka. Masyve yra numelementai, kurių kiekvienas yra dydžio baitų.

Funkcija, kurią nurodo palyginimas, naudojama dviem masyvo elementams palyginti. Ši funkcija keičia paties masyvo turinį didėjimo tvarka.

Tačiau jei du ar daugiau elementų yra lygūs, jų tvarka nėra apibrėžta.

qsort () parametrai

  • bazė: žymeklis pirmajam masyvo elementui rūšiuoti
  • num: masyvo elemento skaičius
  • dydis: kiekvieno masyvo elemento dydis baitais
  • palyginti: rodyklė prie funkcijos, kuri lygina du elementus. Tai grįžta
    • neigiamas sveikasis skaičius, jei pirmasis argumentas yra mažesnis nei antrasis
    • teigiamas sveikasis skaičius, jei pirmasis argumentas yra didesnis už antrąjį
    • nulis, jei abu argumentai yra vienodi

Palyginimo funkcijos prototipas atrodo taip:

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

qsort () Grąžinimo vertė

Funkcija qsort () nieko negrąžina. Surūšiuotą masyvą nurodo pagrindas.

Pavyzdys: Kaip veikia qsort () funkcija?

 #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

Įdomios straipsniai...