Функција ксорт () у Ц ++ сортира дати низ у растућем редоследу помоћу Куицксорт алгоритма.
Функција ксорт () користи функцију поређења да одлучи који је елемент мањи / већи од другог.
прототип ксорт ()
воид ксорт (воид * база, сизе_т нум, сизе_т сизе, инт (* упореди) (цонст воид *, цонст воид *));
Функција је дефинисана у датотеци заглавља.
Функција ксорт () сортира дати низ на који указује база у растућем редоследу. Низ садржи num
елементе, сваки величине бајта.
Функција на коју указује упоређивање користи се за упоређивање два елемента низа. Ова функција модификује садржај самог низа у растућем редоследу.
Међутим, ако су два или више елемената једнака, њихов редослед није дефинисан.
ксорт () Параметри
- база: Показивач на први елемент низа за сортирање
- нум: Број елемента у низу
- величина: Величина у бајтовима сваког елемента у низу
- упореди: Показивач на функцију која упоређује два елемента. Враћа се
- негативан цео број ако је први аргумент мањи од другог
- позитиван цео број ако је први аргумент већи од другог
- нула ако су оба аргумента једнака
Прототип функције упоређивања изгледа:
инт упореди (цонст воид * а, цонст воид * б);
ксорт () Повратна вредност
Функција ксорт () не враћа ништа. На сортирани низ показује база.
Пример: Како функционише функција ксорт ()?
#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