2
我想用C实现对一组数据进行排序。我想知道哪种排序是有效的,并且是时间复杂性最好的情况。请注意,数据仅以升序排列。我想按降序排序。哪一个效率更低,效率最低,为什么? 有人可以用理性解释吗?哪种排序可以有效地将数据从升序排序到降序排列?
我想用C实现对一组数据进行排序。我想知道哪种排序是有效的,并且是时间复杂性最好的情况。请注意,数据仅以升序排列。我想按降序排序。哪一个效率更低,效率最低,为什么? 有人可以用理性解释吗?哪种排序可以有效地将数据从升序排序到降序排列?
在这种特定情况下,您不必使用排序算法。例如你可以交换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)
。我不认为有更快的方式。除了只读取其他方向的数据。
感谢君士坦丁。 :) – Dinesh
我建议你看看http://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms的比较表,然后选择! –
感谢您的链接:) – Dinesh