我想使用C实现对一组数据进行排序。我想知道哪种排序是有效的,时间复杂度最好的情况。请注意,数据仅按升序排列。我想按降序排序。哪一个更有效率&效率最低,为什么? 任何人都可以解释它吗?
答案 0 :(得分:9)
在这种特定情况下,您不必使用排序算法。例如,您可以将i
元素与n - i
元素交换:
for(i = 0; i < size/2; ++i)
{
tmp = arr[i];
arr[i] = arr[size - 1 - i];
arr[size - 1 - i] = tmp;
}
这始终是复杂性O(n/2)
。我不认为有更快的方法。当然,除了从另一个方向阅读数据外。