【发布时间】:2011-11-24 10:42:25
【问题描述】:
我想使用 C 实现对一组数据进行排序。我想知道哪种排序在时间复杂度方面是有效的和最好的情况。请注意,数据仅按升序排列。我想按降序排序。哪一个效率更高和效率最低,为什么? 谁能解释一下?
【问题讨论】:
-
我建议你看看en.wikipedia.org/wiki/…的比较表,然后选择!
标签: c sorting data-structures
我想使用 C 实现对一组数据进行排序。我想知道哪种排序在时间复杂度方面是有效的和最好的情况。请注意,数据仅按升序排列。我想按降序排序。哪一个效率更高和效率最低,为什么? 谁能解释一下?
【问题讨论】:
标签: c sorting data-structures
在这种特定情况下,您不必使用排序算法。例如,您可以将 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)。我不认为有更快的方法。当然除了只是从另一个方向读取数据。
【讨论】: