【问题标题】:How do I use qsort() but in decreasing order? [duplicate]如何使用 qsort() 但按降序排列? [复制]
【发布时间】:2020-10-25 13:51:09
【问题描述】:
void sort_array(void)
{
    int sorted_arr[arr_count];

    qsort(sorted_arr, arr_count, sizeof(*sorted_arr), compare_qsort);
    return;
}

我不知道如何反向使用 qsort 谁能帮助我?

【问题讨论】:

  • int compare_qsort_inverted(const void *a, const void *b) { return -compare_qsort(a, b); } 并在您的函数中使用这个新的排序函数:qsort(..., compare_qsort_inverted);

标签: c


【解决方案1】:

这就是我将如何解决它:

int compare_qsort(const void *pointer1, const void *pointer2)
{
    //Returns a sorted array in descending order.
    const int *pointeri = pointer1;
    const int *pointerj = pointer2;
    return *pointerj - *pointeri;
}

注意你是如何翻转它的,所以pointerj 变量减去了pointeri 变量。

我发现了另一个你可以参考的问题:Using Quick Sort in C to sort in reverse direction (descending)?

【讨论】:

  • 对不起?我只是想看看它做了什么......
猜你喜欢
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 1970-01-01
相关资源
最近更新 更多