【问题标题】:Which sorting is efficient to sort data from ascending order to descending order?哪种排序可以有效地将数据从升序排序到降序?
【发布时间】:2011-11-24 10:42:25
【问题描述】:

我想使用 C 实现对一组数据进行排序。我想知道哪种排序在时间复杂度方面是有效的和最好的情况。请注意,数据仅按升序排列。我想按降序排序。哪一个效率更高和效率最低,为什么? 谁能解释一下?

【问题讨论】:

标签: c sorting data-structures


【解决方案1】:

在这种特定情况下,您不必使用排序算法。例如,您可以将 ith 元素与 n - ith 元素交换:

for(i = 0; i < size/2; ++i)
{
    tmp = arr[i];
    arr[i] = arr[size - 1 - i];
    arr[size - 1 - i] = tmp;
}

这始终具有复杂性O(n/2)。我不认为有更快的方法。当然除了只是从另一个方向读取数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2019-10-03
    • 2013-04-24
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多