📜  C++ qsort()

📅  最后修改于: 2020-09-25 08:56:59             🧑  作者: Mango

C++中的qsort() 函数使用Quicksort算法以升序对给定数组进行排序。

qsort() 函数使用比较函数来确定哪个元素比另一个元素小/大。

qsort()原型

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

该函数在头文件中定义。

qsort() 函数按升序对base指向的给定数组进行排序。该数组包含num元素,每个元素的size字节。

compare所指向的函数用于比较数组的两个元素。此函数以升序修改数组本身的内容。

但是,如果两个或多个元素相等,则它们的顺序是不确定的。

qsort()参数

比较函数的原型如下所示:

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

qsort()返回值

qsort() 函数不返回任何内容。排序后的数组由base指向。

示例: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

运行该程序时,输出为:

Before sorting
9 4 19 2 7 9 5 15 23 3
After sorting
2 3 4 5 7 9 9 15 19 23