Fungsi qsort () dalam C ++ menyusun susunan tertentu dalam urutan menaik menggunakan algoritma Quicksort.
Fungsi qsort () menggunakan fungsi perbandingan untuk menentukan elemen mana yang lebih kecil / lebih besar daripada yang lain.
prototaip qsort ()
void qsort (void * base, size_t num, size_t size, int (* membandingkan) (const void *, const void *));
Fungsi ditentukan dalam fail header.
Fungsi qsort () menyusun susunan yang ditentukan yang ditunjuk oleh pangkalan dalam urutan menaik. Susunan mengandungi num
elemen, masing-masing berukuran byte.
Fungsi yang ditunjukkan oleh membandingkan digunakan untuk membandingkan dua elemen larik. Fungsi ini mengubah kandungan array itu sendiri dalam urutan menaik.
Walau bagaimanapun, jika dua atau lebih elemen sama, susunannya tidak ditentukan.
Parameter qsort ()
- asas: Penunjuk ke elemen pertama tatasusunan untuk disusun
- num: Bilangan elemen dalam tatasusunan
- size: Ukuran dalam bait setiap elemen dalam array
- bandingkan: Penunjuk ke fungsi yang membandingkan dua elemen. Ia kembali
- bilangan bulat negatif jika argumen pertama kurang daripada yang kedua
- bilangan bulat positif jika argumen pertama lebih besar daripada yang kedua
- sifar jika kedua-dua hujah itu sama
Prototaip fungsi perbandingan kelihatan seperti:
int membandingkan (const void * a, const void * b);
qsort () Nilai pulangan
Fungsi qsort () tidak mengembalikan apa-apa. Susunan yang disusun ditunjukkan oleh asas.
Contoh: Bagaimana fungsi qsort () berfungsi?
#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