📅  最后修改于: 2020-09-25 08:56:59             🧑  作者: Mango
qsort() 函数使用比较函数来确定哪个元素比另一个元素小/大。
void qsort (void* base, size_t num, size_t size, int (*compare)(const void*,const void*));
该函数在
qsort() 函数按升序对base
指向的给定数组进行排序。该数组包含num
元素,每个元素的size
字节。
compare
所指向的函数用于比较数组的两个元素。此函数以升序修改数组本身的内容。
但是,如果两个或多个元素相等,则它们的顺序是不确定的。
比较函数的原型如下所示:
int compare(const void* a, const void* b);
qsort() 函数不返回任何内容。排序后的数组由base
指向。
#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
运行该程序时,输出为:
Before sorting
9 4 19 2 7 9 5 15 23 3
After sorting
2 3 4 5 7 9 9 15 19 23