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